微机原理与接口技术第四章

合集下载

微机原理与接口技术-第4-1章

微机原理与接口技术-第4-1章

例4-3 用键盘最多输入10个字符,并存 入内存变量Buff中,若按“Enter”键,则 表示输入结束。
用BIOS层功能调用实现 层功能调用实现 的源程序: 的源程序: .MODEL SMALL CR EQU 0DH .STACK 200H .DATA Buff DB 10 DUP(?) .CODE .STARTUP MOV CX, 0AH LEA BX, Buff
Windows层功能模块的调用
Win32 API使用堆栈来传递参数 API函数调用 C语言的消息框函数的声明: int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style );//参数 最后还有一句说明: Library: Use User32.lib.//说明这个函数的位置
API 函数的返回值
有的API 函数有返回值,如MessageBox 定义 函数有返回值, 有的 的返回值是int类型的数,返回值的类型对汇编 的返回值是 类型的数, 类型的数 程序来说也只有dword 一种类型,它永远放在 一种类型, 程序来说也只有 eax 中。如果要返回的内容不是一个 如果要返回的内容不是一个eax所能 所能 容纳的, 容纳的,Win32 API 采用的方法一般是返回一 个指针, 个指针,或者在调用参数中提供一个缓冲区地 干脆把数据直接返回到缓冲区中去。 址,干脆把数据直接返回到缓冲区中去。
.REPEAT MOV AH, 0H INT 16H .BREAK .IF AL==CR MOV [BX],AL INC BX .UNTILCXZ .EXIT 0 END

微机原理与接口技术 第四章 课后答案

微机原理与接口技术 第四章 课后答案

第四章参考答案1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?⑴MOV BP,AL⑵MOV WORD_OP1,WORD_OP2⑶MOV SA VE_WODR,DS⑷MOV SP,SS:DA TA_WORD[BX][SI]⑸MOV [BX][SI],2解:(1)非法。

源操作数与目的操作数类型不符。

(2)合法。

(3)合法。

(4)合法。

(5)非法。

需说明操作数类型。

2.设V AR1和V AR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADD V AR1,V AR2⑵SUB AL,V AR1⑶JMP LAB[SI]⑷JNZ V AR1⑸JMP NEAR LAB解:(1)两个操作数均为符号地址。

(2)两个操作数的类型不同。

(3)(4)(5)3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)⑵WORD_V AR DW 5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H解:(1)(2)41H59H54H45H0CHF4H00H?01H02H01H02H00H?01H02H01H02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H ??FBH FFH 59H 42H 45H 54H 56H 02H4.设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PARTNO问PLENTH的值为多少?它表示什么意义?解:PLENTH的值为22(16H)。

表示当前位置与PARTNO之间有22个字节空间。

微机原理和接口技术_第4章1

微机原理和接口技术_第4章1
4.时,LENGTH返回此变量所包含的单元数,对其 它变量则返回1。

M1 DW 100 DUP(?)
M2 DW 1, 2, 3
M3 DB ‘ A, B, C, D ‘
MOV CX,LENGTH M1
MOV BL,LENGTH M2
MOV AL,LENGTH M3
4
§4-1 汇编语言程序格式——伪指令语句
二、伪指令语句/指示性语句
伪指令语句:无对应的机器指令,汇编时对伪指令进行处理,可完成数据定义、
存储区分配、段定义、段分配、指示程序结束等功能。
语句的格式:
名字 伪指令指示符 操作数,操作数
;注释
▲名字:名字后不允许带冒号“:”,但可以省略。 •通常是变量名、段名、过程名、符号名等。
M2 DW 1, 2, 3
M3 DB ‘ A, B, C, D ‘
MOV CX,SIZE M1
ADD BL, SIZE M2
MOV AL, SIZE M3
汇编时,计算表达式形成指令为:
MOV CX,200
;返回变量所包含的200个字单元
MOV BL,2
MOV AL,1
24
§4-2 MASM中的表达式 ——修改属性运算符
五、修改属性运算符
修改属性运算符也称作综合运算符(Synthetic operators)。 包括6种: 段操作符、PTR、THIS、HIGH、LOW、SHORT 功能: 在程序运行过程中,修改变量或标号的属性,包括段属性、偏移地址属 性、类型属性等。
汇编时,计算表达式形成指令为:
MOV CX,100
;返回变量所包含的100个字单元
MOV BL,1
MOV AL,1
23

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)

微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)第4章汇编语言程序设计习题与参考答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。

(1)DATA1 DB 10,?,‘A’(2)DATA2 DW 10 DUP(2,3 DUP(?),1)(3)DATA3 DB ‘HELLO,WORLD!’,‘$’(4)DATA4 DW D ATA4解:(1)3字节;(2)100字节;(3)13字节;(4)2字节。

2、指出以下数据定义伪指令所分配的字节数(80386系统)。

(1)DATA1 DF 12,34,56(2)DATA2 DF D ATA2(3)DATA3 DQ 0,10 DUP(?)(4)DATA4 DT 0,1,2解:(1)18字节;(3)6字节;(3)88字节;(4)30字节。

3、指出以下指令中哪些是无效的,并说明原因。

(1)ADDR DB $(2)DATA DB F0H,12H(3)1_DATA DW 1234H(4)@VAR DW V AR1 ;VAR1为一个字节变量(5)MOV AX,[10-VAR1] ;VAR1为一个字变量(6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。

4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP(1,2,3)DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。

请指出以下指令执行后,相应的寄存器中的内容。

(1)MOV AX,WORD PTR DATA1 ;(AX)=?(2)MOV BX,DATA2 ;(BX)=?(3)MOV CX,DATA2+2 ;(CX)=?(4)MOV DX,OFFSET DATA2 ;(DX)=?(5)MOV SI,SEG DATA1 ;(SI)=?(6)MOV DI,LENGTH DATA1 ;(DI)=?(7)MOV SP,TYPE DATA1 ;(SP)=?(8)MOV BP,SIZE DATA2 ;(BP)=? 解:(注意是16进制,算的时候要转换) (1)(AX)=0201H;(2)(BX)=0100H;(3)(CX)=0120H;(4)(DX)=011EH;(5)(SI)=1234H;(6)(DI)=000AH;(7)(SP)=0001H;(8)(BP)=0002H。

微型计算机原理与接口技第四章习题参考答案

微型计算机原理与接口技第四章习题参考答案

第四章习题参考答案教材上的习题P205 1 解:A1 - 4字节,A2 - 6字节,A3 - 40字节,A4 - 60字节P205 4 解:PAR偏移地址为0, PLENTH 当前偏移地址$=2+16+4=22,$-PAR=22,故PLENTH的值为22P205 5 解:AX=1,BX=20,CX=1P206 6 解: 应讨论最高位为1和0的情况。

如输入最高位为1,AH=0;输入最高位为0,AH=0FFH。

IN AL,5FH ;假如输入后AL=45HTEST AL,80H ;执行01000101 AND 10000000后ZF=1,AL=00HJZ L1 ;ZF=1,转到L1MOV AH,0JMP STOPL1: MOV AH,0FFH ;结果AH=0FFHSTOP: HALT补充题阅读程序并完成填空(1) ADDR1开始的单元中连续存放两个双字数据,求其和,并将和存放在ADDR2开始的单元(假定和不超过双字)MOV CX,2XOR BX,BXCLCNEXT: MOV AX,[ADDR1+BX]ADC AX,MOV [ADDR2+BX],AXINC BXNEXT解:[ADDR1+BX+4]INC BXLOOP(2)在数据段ADDR1地址处有200个字节数据,要传送到数据段地址ADDR2处。

MOV AX, SEG ADDR1MOV DS, AXMOV ES,MOV SI,MOV DI, OFFSET ADDR2MOV ,200CLDREP解:AXOFFSET ADDR1CXMOVSB(3)已知有某字串BUF1的首地址为2000H, 数据段与附加段重合。

欲从BUF1处开始将20个字数据顺序传送至BUF2处。

(假设BUF1和BUF2有地址重叠)LEA SI, BUF1ADD SI,LEA DI, BUF2STDMOV CX,REP MOVSW解:38ADD DI, 3820(4)设有一个首地址为ARRAY,有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中。

微型计算机原理-第4章(5)微机原理与接口技术(第三版)(王忠民)

微型计算机原理-第4章(5)微机原理与接口技术(第三版)(王忠民)
格式:SBB DST,SRC 操作:DST <= DST-SRC-CF
▪DEC(Decrement) 减1
格式:DEC DST 操作: DST <= DST -1
第四章 80x86 指令系统—算术运算指令
▪NEG(Negate)求补
格式:NEG DST 操作: DST <= 0-DST
利用NEG指令可以得到负数的绝对值
60H

ACH

74H

3BH

DATA2 C1H
36H

9EH

D5H
20H

图4.19 例4.3中被加数和加数在内存中的存放情况
第四章 80x86 指令系统—算术运算指令
程序如下: LOOPER:MOV
MOV CX,5
;设置循环次数
MOV SI,0
;置位移量初值
CLC
AL,DATA2[SI]
;取一个
第四章 80x86 指令系统—算术运算指令
说明: 1、DST:REG/MEM,SRC:8/16data/REG/MEM。 2、DST、SRC不能同时为MEM。 3、加法指令影响标志寄存器的状态标志。 4、INC指令不影响CF标志。
第四章 80x86 指令系统—算术运算指令 例 4.3 计 算 两 个 多 字 节 十 六 进 制 数 之 和 : 3B74AC60F8H+20D59E36C1H=?
第四章 80x86 指令系统—算术运算指令
(3)乘法指令
▪MUL(Unsigned Multiple) 无符号数乘法
格式:MUL SRC 操作:AX<=AL*SRC(字节)/ DX,AX<=AX*SRC(字)

微机原理与接口技术(楼顺天第二版)第四章习题解答

微机原理与接口技术(楼顺天第二版)第四章习题解答

微机原理与接口技术(楼顺天第二版)习题解答第4章汇编语言程序设计4。

1、已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。

答:BUF D B ”BONJOUR_BELLE"BUFR DB 100 DUP(?)MOV CX, NLEA SI, BUFLEA DI, BUFRADD DI,CXDEC DIL1:MOV AL,[SI]MOV [DI],ALINC SIDEC DILOOP L14。

2、利用移位、传送和相加指令实现AX的内容扩大10倍.答:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。

XOR DX,DXSHL AX,1RCL DX,1MOV BX,AXMOV CX,DXSHL AX,1RCL DX, 1SHL AX, 1RCL DX, 1ADD AX, BXADC DX, CX4。

3、在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。

答:V AR DW 1236,-432,3900XOR SI,,SIMOV AX,V AR[SI]CMP AX,V AR[SI+2]JAE L1XCHG AX,V AR[SI+2]L1:CMP AX, V AR[SI+4]JAE L2XCHG AX, V AR[SI+4]L2:MOV V AR[SI],AXMOV AX,V AR[SI+2]CMP AX,V AR[SI+4]JAE L3XCHG AX,V AR[SI+4]L3:MOV V AR[SI+2], AX4。

4、编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。

微型计算机原理与接口技术第四章课后答案

微型计算机原理与接口技术第四章课后答案

第四章1. 下列变量各占多少字节?A1 DW 23H,5876HA2 DB 3 DUP(?),0AH,0DH, ‘$’A3 DD 5 DUP(1234H, 567890H)A4 DB 4 DUP(3 DUP(1, 2,’ABC’))答:A1占4个字节A2占6个字节A3占40个字节A4占60个字节2. 下列指令完成什么功能?MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFH答:(1)将0066H传送给AX(2)将0FFH传送给AL(3)将0FFFFH传送给AX(4)AND AL,02H(5)OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5,’123’ABUF DB 0L EQU ABUF-BUF求L的值为多少?答:L=64. 假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PAR求PLENTH的值为多少?表示什么意义?答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。

若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。

故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。

5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1 DB ?DA2 DW 10 DUP(?)DA3 DB ‘ABCD’MOV AX, TYPE DA1MOV BX, SIZE DA2MOV CX, LENGTH DA3答:AX=1,BX=20,CX=16. 下段程序完成后,AH等于什么?IN AL, 5FHTEST AL, 80HJZ L1MOV AH, 0JMP STOPL1: MOV AH, 0FFHSTOP: HLT答:讨论从端口5FH输入的数据最高位的情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• DMA(Direct Memory Access)是在内 存的不同区域之间,或者在内存与外设端 口之间直接进行数据传送,而不经过CPU 中转的一种数据传送方式,可以大大提高 信息的传送速度。
DMA的工作流程图
HLDA
发存储器地址 传送数据
传送结束否? Y
DMA结束
修改地 址指针
N
DMA方式传送的主要步骤 ① 外设向DMAC发出DMA传送请求。 ② DMAC通过连接到CPU的HOLD信号向CPU提
的计数/定时电路,8255并行通信接口芯片, 8251的串行通信控制器 P329 图8-7、图8-8 • 北桥芯片(AGP、SDR)、南桥芯片
返回本节
4.2 CPU与外设数据传送的方式
• CPU与外设之间传输数据的控制方式通常 有三种:程序方式、中断方式和DMA方式。
• 程序方式指用输入/输出指令来控制信息传 输的方式,是一种软件控制方式,根据程 序控制的方法不同,又可以分为无条件传 送方式和条件传送方式。
4.1.1 输入/输出的寻址方式
• 微机系统采用总线结构形式,即通过一组 总线来连接组成系统的各个功能部件(包 括CPU、内存、I/O端口),CPU、内存、 I/O端口之间的信息交换都是通过总线来进 行的。
• 存储器映射的寻址方式(统一编址) • I/O映射的寻址方式(独立编址)
存储器映射的寻址方式
出DMA请求。
③ CPU在完成当前总线操作后会立即对DMA请求 做出响应。CPU的响应包括两个方面:一方面, CPU将控制总线、数据总线和地址总线浮空, 即放弃对这些总线的控制权;另一方面,CPU 将有效的HLDA信号加到DMAC上,用此来通知 DMAC,CPU已经放弃了总线的控制权。
④待CPU将总线浮空,即放弃了总线控制权后,由 DMAC接管系统总线的控制权,并向外设送出 DMA的应答信号。
• 这种方式下的软硬件设计都比较简单,但应用的 局限性较大。
条件传送方式
• 又称查询方式,通过程序查询相应设备的 状态,若状态不符合则CPU不能进行输入/ 输出操作,需要等待;只有当状态信号符 合要求时,CPU才能进行相应的输入/输出 操作。
查询输入的程序流程图
N READY=1 Y
输入一个字节到CPU
4.1.3 CPU的输入输出时序
• I/O设备速度较慢,需插入等待周期
4.1.4 CPU与接口电路间数据传送的形式
P327 图8-4 • 并行通信数据的各位同时传送
• 串行通信数据一位一位顺序传送
4.1.5 PC中CPU与外设的接口
P328 图8-6 • 8237DMA控制器,8259中断控制器,8253
• 中断方式下的接口电路P334 图8-16
DMA传送方式
为什么采用DMA传送方式? • 利用中断进行信息传送,可以大大提高CPU的利
用率,但其传送过程必须由CPU进行监控。每次 中断,CPU都必须进行断点及现场信息的保护和 恢复操作,会占用一定的CPU时间。如果需要在 内存的不同区域之间或者在内存与外设端口之间 进行大量信息快速传送的话,用查询或中断方式 难以满足速度上的要求,这时应采用直接数据通 道传送(DMA传送方式)。
无条件传送方式
• 利用程控方式与外设交换信息时,如果输入/输出 的时刻,都可以保证外设总是处于“准备好”状 态,则可以直接利用输入/输出指令进行信息的输 入/输出操作。
• 输入:加三态缓冲器(控制端由地址译码信号和 信号选中,CPU用IN指令)
• 输出:加锁存器(控制端由地址译码信号和信号 选中,CPU用OUT指令)
4 输入和输出
本章要求 ➢4.1 理解输入/输出接口概述 ➢4.2 掌握CPU与外设数据传送的方式 ➢4.3 理解DMA 控制器
4.1 输入/输出接口概述
• 输入/输出是微机系统与外部设备进行信息 交换的过程。输入/输出设备称为外部设备, 是计算机系统的重要设备。
• 与标准的存储器相比,外部设备比较复杂。 结构方式不同(机械式、电动式、电子 式);信号类型不同(数字信号、模拟信 号、开关量信号); 输入/输出信息的速率也相差很大。
对数据进行处理
输入完了吗?N来自Y 结束中断方式
为什么采用中断方式? • 查询优点是硬件开销小,使用比较简单,
但CPU要不断地查询外设状态,当外设未 准备好时,CPU就只能循环等待不能执行 其它程序,浪费了CPU的大量时间,降低 了主机的利用率。
• 中断传送方式当CPU进行主程序操作时,外设的 数据已存入输入端口的数据寄存器;或端口的数 据输出寄存器已空,由外设通过接口电路向CPU 发出中断请求信号,CPU在满足一定的条件下, 暂停执行当前正在执行的主程序,转入执行相应 能够进行输入/输出操作的子程序,待输入/输出操 作执行完毕之后CPU即返回继续执行原来被中断 的主程序。
• 内存与外设地址的分配可以用统一的分布 图
• 不需要专门的输入、输出操作指令
缺点
• 内存与I/O端口统一编址时,在地址总线根数一定 的情况下,使系统中实际可以直接寻址的内存单 元数减少。
• 一般情况下,系统中I/O端口数远小于内存单元数, 在用直接寻址方式来寻址这些端口,必须用与表 示内存单元地址相同的字节数,使得指令代码较 长,相应地读/写执行时间也较长,不利于提高系 统的运行速度。
• 把外设的一个端口与存储器的一个单元作 同等对待,每一个I/O端口都有存储器一个 地址。CPU与I/O端口之间的信息交换与存 储单元的读写过程一样,内存单元与I/O端 口的不同只在于它们具有不同的地址。
优点
• CPU对I/O端口的读/写操作可使用全部存储 器的读/写操作指令,也可用对存储器的不 同寻址方式来对I/O端口中的信息,直接进 行算术、逻辑运算及循环、移位等操作。
I/O映射的寻址方式
• 有专门的I/O指令 优点
• 易分辨I/O操作;指令短、执行时间快;不 占用存储器空间 缺点
• 需要两套指令和控制信号
4.1.2 CPU与I/O设备之间的关系
P326 图8-2 通过端口寻址 • 数据(数字量、模拟量和开关量) • 状态信息(Ready、Busy)数据输入 • 控制信息数据输出
相关文档
最新文档