微机原理第3章习题

上传人:kms****20 文档编号:56888220 上传时间:2018-10-16 格式:PPT 页数:38 大小:207.50KB
返回 下载 相关 举报
微机原理第3章习题_第1页
第1页 / 共38页
微机原理第3章习题_第2页
第2页 / 共38页
微机原理第3章习题_第3页
第3页 / 共38页
微机原理第3章习题_第4页
第4页 / 共38页
微机原理第3章习题_第5页
第5页 / 共38页
点击查看更多>>
资源描述

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

1、第三章 习题,31什么叫寻址方式?8086/8088CPU共有哪几种寻址方式?(略) 32设(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)寄存器寻址 无物理地址 (2)立即寻址 无物理地

2、址 (3)立即寻址 无物理地址 (4)基址变址相对寻址 PA=(DS)10HVAR(BX)(SI)608F0H (5)立即寻址 无物理地址 (6)寄存器间接寻址 PA=(ES) 10H(BX)20800H (7)寄存器间接寻址 PA=(SS) 10H(BP)16200H (8)寄存器相对寻址 PA=(DS) 10H(BX)20H60820H,33假设(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=0500H,位移量DATA=40H(217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H,试确定下列转移指令的转移地址。(1)JMP 23

3、00H(2)JMP WORD PTRBX(3)JMP DWORD PTRBX+DATA,解:(1)JMP 2300H段内直接转移 PA(CS)10H(IP)+2300H05500H(2)JMP WORD PTRBX段内间接转移PA(CS)10HBX=0200H+(217A0H)=04300H(3)JMP DWORD PTRBX+DATA段间间接转移PABX+DATA=(217E2H) 10H(217E0H)=90000H+0400H=90400H,34试说明指令MOV BX,5BX与指令LEA BX,5BX的区别。 答:MOV BX,5BX是数据传送类指令,表示将数据段中以(BX+5)为偏移地

4、址的16位数据送寄存器BX中。 LEA BX,5BX是取偏移地址指令,结果为 (BX)=(BX)+5,即操作数的偏移地址为(BX)+5 35设堆栈指针SP的初值为2300H,(AX)=50ABH,(BX)=1234H。执行指令PUSH AX后,(SP)=?,再执行指令PUSH BX及POP AX之后,(SP)=?(AX)=?(BX)=? 解:执行指令PUSH AX后,(SP)=22FEH执行指令PUSH BX及POP AX之后,(SP)=22FEH,(AX)=(BX)=1234H,36指出下列指令的错误。 (1)MOV AH,CX 类型不匹配或两操作数字长不相等 (2)MOV 33H,AL 立

5、即数不能做目的操作数 (3)MOV AX,SIDI 两变址寄存器不能同时使用 (4)MOV BX,SI 两操作数不能同时为存储器操作数 (5)ADD BYTE PTRBP,256 两操作数类型不匹配,(6)MOV DATASI,ES:AX 源操作数形式错,寄存器操作数不加段重设符 (7)JMP BYTE PTRBX 转移地址的字长至少应是16位 (8)OUT 230H,AX 对I/O指令,端口地址超过8位,必须采用间接寻址 (9)MOV DS,BP 正确 (10)MUL 39H MUL指令中操作数不能为立即数,37已知(AL)=7BH,(BL)=38H,试问执行指令ADD AL,BL后,AF、

6、CF、OF、PF、SF和值各为多少? 解:(AL)=B3HAF=1,CF=0,OF=1,PF=0,SF=1,ZF=0 38试比较无条件转移指令、条件转移指令、调用指令和中断指令有什么异同?(略),39试判断下列程序执行后,BX中的内容。MOV CL,3MOV BX,0B7HROL BX,1ROR BX,CL 解:该程序是首先将BX内容不带进位循环左移1位,再循环 右移3位,即相当于将BX内容不带进位循环右移2位,所以结果为(BX)=C02DH,310按下列要求写出相应的指令或程序段 (1)写出两条使AX内容为0的指令;MOV AX,0XOR AX,AXAND AX,0SUB AX,AX (2)

7、使BL寄存器中的高4位和低4位互换;MOV CL,4ROL BL,CL或 ROR BL,CL (3)屏蔽CX寄存器的b11、b7和b3位;AND CX,0F777H (4)测试DX中的b0和b8位是否为1。TEST DX,0101H,311分别指出以下两个程序段的功能。,(1)MOV CX,10 LEA SI,FIRST LEA DI,SECOND STD REP MOVSB 将数据段中FIRST为最高地址的10个字节数据按减地址方向传送到附加段SECOND为最高地址的向前10个单元中。,(2)CLDLEA DI,1200HMOV CX,0F00HXOR AX,AXREP STOSW将附加段中

8、偏移地址为1200H单元开始的0F00H个字单元清零。,312执行以下两条指令后,标志寄存器FLAGS的六个状态位各为什么状态?MOV AX,84A0HADD AX,9460H 解:(AX)=1900H在两个16位数进行加法运算时,对CF、ZF、SF、OF会产生影响,但对PF和AF标志位,只有其低8位运算影响它们的状态。AF=0,PF=1,CF=1,ZF=0,SF=0,OF=1,313将+46和-38分别乘以2,可应用什么指令来完成?如果除以2呢? 解: 将+46和-38分别乘以2,可分别用逻辑左移指令SHL和算术左移指令SAL完成。SHL针对无符号数,SAL针对有符号数,也可用MUL(无符号

9、数)和IMUL(有符号数) 除以2,用SHR或DIV实现46/2,用SAR或IDIV实现38/2。,314已知AX=8060H,DX=03F8H,端口PORT1的地址是48H,内容为40H;PORT2的地址是84H,内容为85H。请指出下列指令执行后的结果。(1)OUT DX,AL将60H输出到地址为03F8H的端口中(2)IN AL,PORT1从PORT1读入一字节数据,则(AL)40H(3)OUT DX,AX将AX8060H从地址为03F8H的端口输出(4)IN AX,48H由48H端口读入16位的数据(5)OUT PORT2,AX将8060H从地址为84H的端口输出,315试编写程序,统

10、计BUFFER为起始地址的连续200个单元中0的个数。 解: LEA SI,BUFFERMOV CX,200XOR BX,BX AGAIN:MOV AL,SICMP AL,0JNE GOONINC BX GOON: INC SILOOP AGAINHLT,316写出完成下述功能的程序段。 (1)从地址DS:0012H中传送一个数据56H到AL寄存器。MOV DS:BYTE PTR0012H,56HMOV AL,0012H (2)将AL中的内容左移两位。MOV CL,2SHL AL,CL (3)AL的内容与字节单元DS:0013H中的内容相乘。MUL DS:BYTE PTR0013H (4)乘积

11、存入字单元DS:0014H中。MOV DS:0014H,AX,317若(AL)=96H,(BL)=12H,在分别执行指令MUL和IMUL后,其结果是多少?OF=?CF=? 解:执行MUL BL后(AX)0A8CH,CFOF1执行IMUL BL后(AX)F88CH,CFOF1,补充作业,1. 系统有一个堆栈段区,其地址为1250H:0000H1250H:0100H, (SP)=0052H,则计算以下数值 (1)栈顶物理地址 (2)栈底物理地址 (3)堆栈段寄存器SS中的段地址 (4)若把数据3456H存入,此时SP的值,解: (1)栈顶地址:逻辑地址为1250H:0052H 物理地址为1250H

12、16+0052H=12552H (2)栈底地址:逻辑地址为1250H:0100H 物理地址为1250H16+0100H=12600H (3)段寄存器:(SS)=1250H (4)若把数据3456H存入,此时(SP)=0050H,2. 已知(DS)=3000H, (BX)=1000H,(DI)=0020H,MASK=0300H,内存分配如图所示。连续执行下列指令后,DS,SI,DI,AX的内容是什么?标志位状态如何? LEA SI,MASKBX+DI MOV AX,SI LDS DI,BX+SI SUB AX,76EBH,解:(1)LEA SI,MASKBX+DI,这条指令传送的是源操作数的有效

13、地址而不是内容,(SI)=MASK+(BX)+(DI) =0300H+1000H+0020H=1320H(2)MOV AX,SI,这条指令传送的是源操作数的有效地址的内容,源操作数的物理地址PA=(DS)16+(SI)=31320H,则(AX)=1322H(3)LDS DI,BX+SI,其源操作数的物理地址PA=(DS)16+(SI)+(BX) =30000H+1320H+1000H=32320H则(DS)=2000H,(DI)=1000H(4)(AX)=1322H,执行SUB AX,76EBH后,(AX)=1322H-76EBH=9C37H标志位状态分别为:CF=1,SF=1,ZF=0,OF

14、=0,PF=0,AF=1,补充习题,1. 一个有16个字的数据区,起始地址为70A0H:DDF6H,则这个数据区末字单元的物理地址是( )(A)7E815H (B)7E816H (C)7E814H (D)7E7F8H 2. 已知(BL)6FH,执行TEST BL,8FH后, (BL)( ) (A)0FH (B)6FH (C)0 (D)EFH,3. 读程序回答问题XOR AX,AXMOV BX,1MOV CX,5 LOP:ADD AX,BXINC BXINC BXLOOP LOPHLT 上述程序段执行后, (AX)25,(BX)11,4. 在程序运行过程中,确定下一条指令的物理地址的计算表达式是( ) (A)(CS)10H(IP) (B) (DS)10H(DI) (C) (SS)10H(SP) (D) (ES)10H(SI),5. 设(SS)2000H,则下列程序执行后,(SP)( ),(AL)中数据在内存地址( )中,(AH)中数据在内存地址( )中。MOV SP,2000HMOV AX,1234HPUSH AX 答案:1FFEH,21FFEH,21FFFH,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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