微机原理第二版答案

上传人:鲁** 文档编号:490141336 上传时间:2023-10-05 格式:DOC 页数:10 大小:443.50KB
返回 下载 相关 举报
微机原理第二版答案_第1页
第1页 / 共10页
微机原理第二版答案_第2页
第2页 / 共10页
微机原理第二版答案_第3页
第3页 / 共10页
微机原理第二版答案_第4页
第4页 / 共10页
微机原理第二版答案_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《微机原理第二版答案》由会员分享,可在线阅读,更多相关《微机原理第二版答案(10页珍藏版)》请在金锄头文库上搜索。

1、3.2设(DS)=6000H,(ES)=2000H,(SS)=1500H,(Si)=00A0H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H. 请分别指出下列各条指令源操作数的寻址方式?它的物理地址是多少?(1) MOV AX,BX (2) MOV DL,80H(3) MOV AX, VAR (4) MOV AX,VARBXSI(5) MOV AL,B (6) MOV DI, ES: BX(7) MOV DX,BP (8) MOV BX,20HBX解: (1)寄存器寻址。因源操作数是寄存器,故寄存器BX就是操作数的地址.(2)立即寻址。操作数80H存放于代码段中指令码

2、MOV之后。 (3)直接寻址。(4)基址一变址一相对寻址 操作数的物理地址=(DS) 16(SI)(BX)VAR = 60000H00A0H0800H0050H608F0H(5)立即寻址(6)寄存器间接寻址. 操作数的物理地址 = (ES) 16(BX) = 20000H0800H = 20800H(7)寄存器间接寻址。 操作数的物理地址= (SS) 16(BP) = 15000H1200H= 16200H(8)寄存器相对寻址 操作数的物理地址(DS) 16(BX)20H = 60000H0800H20H= 60820H3.3 假设(DS)= 212AH,(CS)= 0200H,(IP)= 1

3、200H,(BX)= 0500H,位移量DATA=40H,(217A0H) =2300H,(217E0H)=0400H,(217E2H) =9000H 试确定下列转移指令的转移地址. (1) JMP BX (2) JMP WORD PTRBX (3) JMP DWORD PTRBX+DATA 解:转移指令分为段内转移和段间转移,根据其寻址方式的不同,又有段内的直接转移和间接转移,以及段间的直接转移和间接转移地址。对直接转移,其转移地址为当前指令的偏移地址(即IP的内容)加上位移量或由指令中直接得出;对间接转移,转移地址等于指令中寄存器的内容或由寄存器内容所指向的存储单元的内容。 (1) 段内间

4、接转移。转移的物理地址=(CS) l6 +0500H =02000H+0500H=02500H (2)段内间接转移。转移的物理地址= (CS) 16+ BX = (CS) l6+(217A0H) =02000H+2300H=04300H (3)段间间接转移。转移的物理地址=BX+DATA IP=DSl6+BX+DATA=217E0 =(217E2H) l6+(217E0H) CS=217E2H=9000H =90000H+0400H=90400H3.4试说明指令MOV BX,5BX与指令LEA BX,5BX的区别。 解:前者是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的16位数据送

5、寄存器BX.;后者是取偏移地址指令,执行的结果是(BX)= (BX)5,即操作数的偏移地址为(BX)+5。3.5设堆栈指针SP的初值为2300H,(AX)50ABH,(BX)=1234H。执行指令PUSH AX后,(SP)?,再执行指令PUSH BX及POP AX之后,(SP)= ?(AX)= ?(BX)?解:堆栈指针SP总是指向栈顶,每执行一次PUSH指令SP-2,执行一次POP指令SP+2.所以,执行PUSH AX指令后,(SP)=22FEH;再执行PUSH BX及POP AX后,(SP)=22FEH,(AX)=(BX)=1234H3.6 指出下列指令的错误: (1) MOV AH,CX

6、(2) MOV 33H,AL (3) MOV AX, SIDI (4) MOV BX,SI (5) ADD BYTE PTRBP,256 (6) MOV DATASI,ES:AX (7) JMP BYTE PTRBX (8) OUT 230H,AX (9) MOV DS,BP (10) MUL 39H 解: (1)指令错。两操作数字长不相等 (2)指令错。MOV指令不允许目标操作数为立即数 (3)指令错。在间接寻址中不允许两个间址寄存器同时为变址寄存器。 (4)指令错。MOV指令不允许两个操作数同时为存储器操作数。 (5)指令错。ADD指令要求两操作数等字长。 (6)指令错。源操作数形式错,寄

7、存器操作数不加段重设符。 (7)指令错。转移地址的字长至少应是16位的。 (8)指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址。 (9)指令正确。 (10)指令错。MUL指令不允许操作数为立即数。3.9 试判断下列程序执行后,BX中的内容MOV CL, 3MOV BX,0B7HROL BX,1ROR BX,CL解:该程序段是首先将BX内容不带进位循环左移1位,再循环右移3位。即相当于将原BX内容不带进位循环右移2位,故结果为:(BX)=0C02DH3.11 分别指出以下两个程序段的功能:(1)(2)MOV CX,l0CLDLEA S

8、I,FIRSTLEA DI, 1200HLEA DI, SECONDMOV CX,0FOOHSTDXOR AX,AXREP MOVSBREP STOSW解: (1)该段程序的功能是:将数据段中FIRST为最高地址的10个字节数据按减地址方向传送到附加段SECOND为最高地址的向前10个单元中。 (2)将附加段中偏移地址为1200H单元开始的0FOOH个字单元清0。3.16 写出完成下述功能的程序段:(1)从地址DS:0012H中传送一个数据56H到AL寄存器;(2)将AL中的内容左移两位(3)AL的内容与字节单元DS:0013H中的内容相乘 (4)乘积存入字单元DS:0014H中解: MOV

9、SI,OFFSET0012H MOV DI,OFFSET0014H MOV AL,SI MOV CL,2 SAL AL,CL MOV BL,0013H MUL BL MOV DI,AX选看:3.7 已知(AL) =7BH, (BL) =38H,试问执行指令ADD AL, BL后,AF、CF、OF、PF、SF和ZF的值各为多少? 解:AF=1,CF=0,OF=1,PF=0,SF=l,ZF=03.10按下列要求写出相应的指令或程序段。(1)写出两条使AX内容为0的指令。(2)使BL寄存器中的高4位和低4位互换。(3)屏蔽CX寄存器的bll,b7和b3位。(4)测试DX中的b0和b8位是否为1(1)

10、 MOV AX,0XOR AX,AX ;AX寄存器自身相异或,可使其内容清0(2) MOV CL, 4ROL BL,CL ;将BL内容循环左移4位,可实现其高4位和低4位 的互换(3) AND CX,0F777H ;将CX寄存器中需屏蔽的位“与”0。也可用“或”指令实现(4) AND DX,0101H ;将需侧试的位“与”1,其余“与”0屏蔽掉CMP DX,0101 H ;与0101H比较JZ ONE ;若相等则表示b0和b8位同时为3.12 执行以下两条指令后,标志寄存器FLAGS的六个状态位各为什么状态? MOV AX,84A0H ADD AX,9460H解:执行ADD指令后,6个状态标志

11、位的状态分别为: 在两个16位数进行加法运算时,对CF、ZF、SF和OF会产生影响,但对PF和AF标志位,只有其低8位的运算影响它们的状态。各标志位的状态分别为:AF=0,PF=1,CF=1,ZF=0,SF=0,OF=1。3.14已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,内容为40H;PORT2的地址是84H,内容为85H。请指出下列指令执行后的结果。 (1)OUT DX, AL (2) IN AL,PORT1 (3) OUT DX,AX (4) IN AX,48H (5) OUT PORT2,AX 解: (1)将60H输出到地址为03F8H的端口中。 (2) 从P

12、ORT1读入一个字节数据,执行结果:(AL)=40H。 (3) 将 AX=8060H输出到地址为03F8H的端口中。 (4)由48H端口读人16位二进制数。 (5)将8060H输出到地址为84H的端口中。请分别用DB 、DW 、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H 、22H 、33H 、44H 、55H 、66H 、77H 、88H的数据定义语句. 解:DB,DW,DD伪指令分别表示定义的数据为字节类型、字类型及双字型.其定义形式为: DATA DB 11H,22H,33H,44H,55H,66H,77H,88H DATA DW 2211H,4433H,6655H,8

13、877H DATA DD 44332211H,88776655H若程序的数据段定义如下,写出各指令语句独立执行后的结果:DSEG SEGMENTDATA1 DB 10H,20H,30HDATA2 DW 10 DUP(?)STRING DB 123DSEG ENDS(1) MOV AL,DATA1(2) MOV BX,OFFSET DATA2(3) LEA SI,STRINGADD DI,SI解:1.取变量DATA1的值. 指令执行后,(AL)=10H.2.变量DATA2的偏移地址. 指令执行后,(BX)=0003H.3.先取变量STRING的偏移地址送寄存器SI,之后送SI的内容与DI的内容相加并将结果送DI.指令执行后,(SI)=0017H;(DI)=(DI)+0017H.4.6 假设数据项定义如下:DATA1 DB HELLO!GOOD MORNING!DATA2 DB 20 DUP(?)用串操作指令编写程序段,使其分别完成以下功能:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号