微机原理第3章习题

上传人:c****d 文档编号:243380289 上传时间:2024-09-22 格式:PPT 页数:38 大小:105.50KB
返回 下载 相关 举报
微机原理第3章习题_第1页
第1页 / 共38页
微机原理第3章习题_第2页
第2页 / 共38页
微机原理第3章习题_第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,2,解,:,(1)寄存器寻址 无物理地址,(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,3,33假设(DS)=212AH,(CS)=0200H,(IP)=1200H,(BX)=0500H,,位移量DATA=40H,(217A0H)=2300H,(217E0H)=0400H,(217E2H)=9000H,,试确定下列转移指令的转移地址。,(1)JMP 2300H,(2)JMP WORD PTRBX,(3)JMP DWORD PTRBX+DATA,4,解,:,(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,5,34试说明指令MOV BX,5BX与指令LEA BX,5BX的区别。,答:,MOV BX,5BX是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的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,6,36指出下列指令的错误。,(1)MOV AH,CX,类型不匹配或两操作数字长不相等,(2)MOV 33H,AL,立即数不能做目的操作数,(3)MOV AX,SIDI,两变址寄存器不能同时使用,(4)MOV BX,SI,两操作数不能同时为存储器操作数,(5)ADD BYTE PTRBP,256,两操作数类型不匹配,7,(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指令中操作数不能为立即数,8,37已知(AL)=7BH,(BL)=38H,试问执行指令ADD AL,BL后,AF、CF、OF、PF、SF和ZF的值各为多少?,解,:,(AL,)=B3H,AF=1,CF=0,OF=1,,PF=0,SF=1,ZF=0,38试比较无条件转移指令、条件转移指令、调用指令和中断指令有什么异同?(略),9,39试判断下列程序执行后,BX中的内容。,MOV CL,3,MOV BX,0B7H,ROL BX,1,ROR BX,CL,解:该程序是首先将BX内容不带进位循环左移1位,再循环 右移3位,即相当于将BX内容不带进位循环右移2位,,所以结果为(BX)=C02DH,10,310按下列要求写出相应的指令或程序段,(1)写出两条使AX内容为0的指令;,MOV AX,0,XOR AX,AX,AND AX,0,SUB AX,AX,(2)使BL寄存器中的高4位和低4位互换;,MOV CL,4,ROL BL,CL,或 ROR BL,CL,(3)屏蔽CX寄存器的b11、b7和b3位;,AND CX,0F777H,(4)测试DX中的b0和b8位是否为1。,TEST DX,0101H,11,3,11,分别指出以下两个程序段的功能。,(1)MOV CX,10,LEA SI,FIRST,LEA DI,SECOND,STD,REP MOVSB,将数据段中FIRST为最高地址的10个字节数据按减地址方向传送到附加段SECOND为最高地址的向前10个单元中。,(2)CLD,LEA DI,1200H,MOV CX,0F00H,XOR AX,AX,REP STOSW,将附加段中偏移地址为1200H单元开始的0F00H个字单元清零。,12,312执行以下两条指令后,标志寄存器FLAGS的六个状态位各为什么状态?,MOV AX,84A0H,ADD AX,9460H,解:(AX)=1900H,在两个16位数进行加法运算时,对CF、ZF、SF、OF会产生影响,但对PF和AF标志位,只有其低8位运算影响它们的状态。,AF=0,PF=1,CF=1,,ZF=0,SF=0,OF=1,13,313将+46和-38分别乘以2,可应用什么指令来完成?如果除以2呢?,解:,将+46和-38分别乘以2,可分别用逻辑左移指令SHL和算术左移指令SAL完成。SHL针对无符号数,SAL针对有符号数,也可用MUL(无符号数)和IMUL(有符号数),除以2,用SHR或DIV实现46/2,用SAR或IDIV实现38/2。,14,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的端口输出,15,315试编写程序,统计BUFFER为起始地址的连续200个单元中0的个数。,解: LEA SI,BUFFER,MOV CX,200,XOR BX,BX,AGAIN:MOV AL,SI,CMP AL,0,JNE GOON,INC BX,GOON: INC SI,LOOP AGAIN,HLT,16,316写出完成下述功能的程序段。,(1)从地址DS:0012H中传送一个数据56H到AL寄存器。,MOV DS:BYTE PTR0012H,56H,MOV AL,0012H,(2)将AL中的内容左移两位。,MOV CL,2,SHL AL,CL,(3)AL的内容与字节单元DS:0013H中的内容相乘。,MUL DS:BYTE PTR0013H,(4)乘积存入字单元DS:0014H中。,MOV DS:0014H,AX,17,317若(AL)=96H,(BL)=12H,在分别执行指令MUL和IMUL后,其结果是多少?OF=?CF=?,解:,执行MUL BL后,(AX)0A8CH,CFOF1,执行IMUL BL后,(AX)F88CH,CFOF1,18,补充作业,1. 系统有一个堆栈段区,其地址为1250H:0000H1250H:0100H,,(SP)=0052H,则计算以下数值,(1)栈顶物理地址,(2)栈底物理地址,(3)堆栈段寄存器SS中的段地址,(4)若把数据3456H存入,此时SP的值,19,解,:,(1),栈顶地址:逻辑地址为1250H:0052H,物理地址为1250H16+0052H=12552H,(2)栈底地址:逻辑地址为1250H:0100H,物理地址为1250H16+0100H=12600H,(3)段寄存器:(SS)=1250H,(4)若把数据3456H存入,,此时(SP)=0050H,20,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,22H,24H,13H,10H,00H,20H,00H,13H,00H,30H,.,31320H,31322H,32320H,32322H,32324H,21,解:(1)LEA SI,MASKBX+DI,这条指令传送的是源操作数的有效地址而不是内容,,(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=0,PF=0,AF=1,22,补充习题,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,23,3. 读程序回答问题,XOR AX,AX,MOV BX,1,MOV CX,5,LOP:ADD AX,BX,INC BX,INC BX,LOOP LOP,HLT,上述程序段执行后,,(AX)25,(BX)11,24,4. 在程序运行过程中,确定下一条指令的物理地址的计算表达式是( ),(A)(CS)10H(IP),(B) (DS)10H(DI),(C) (SS)10H(SP),(D) (ES)10H(SI),25,5. 设(SS)2000H,则下列程序执行后,(SP)( ),(AL)中数据在内存地址( )中,(AH)中数据在内存地址( )中。,MOV SP,2000H,MOV AX,1234H,PUSH AX,答案:1FFEH,21FFEH,21FFFH,26,6. 有如下程序段,MOV AX,1234H,MOV BX,5678H,ADD AL,BL,DAA ;(AL)=12H,CF=1,MOV CL,AL,MOV AL,AH,ADC AL,BH,DAA ;12H+56H+CF=69H,执行程序后,(AL)=69H,(CL)=12H,27,7. 寄存器间接寻址时,操作数在( )中,(A)寄存器 (B)存储器,(C)堆栈区 (D)累加器,8. 执行返回指令,退出中断服务程序,这时返回地址来自( ),(A)ROM区 (B)程序计数区,(C)堆栈区 (D)CPU的暂存寄存器,28,9. 读程序回答问题,MOV AX,1234H,MOV CL,4,ROL AX,CL,DEC AX,MOV CX,4,MUL CX,HLT,执行后,(AH)8DH,(AL)00H,29,10. 下面程序段中,当满足条件转到NEXT标号执行时,(AL)的值正确的是( ),CMP AL,0FBH,JNB NEXT,NEXT:,(A)80H (B)8FH,(C)F0H (D)FEH,30,答案:SP=1FFEH,AX=00F0HDX=ACF0H,DI=1234H,CF=0,ZF=0,MOV SP,2000H,MOV AX,00F0H,MOV SI,1234H,MOV DX,5678H,PUSH SI,POP DI,SHL DX,1,TEST AX,DX,PUSH DX,11. 执行下列程序后,SP=?AX=?DX=? DI=?标志位CF=?ZF=?,31,12.交换SI、DI的内容,正确程序段是(AC),(A)PUSH SI (B) PUSH SI,PUSH DI PUSH DI,POP SI POP DI,POP DI POP SI,(C)MOV AX,SI (D)MOV AX,SI,MOV SI,DI MOV BX,DI,MOV DI,AX XCHG BX,AX,32,13. 完成41H送2100H,42H送2101H的 正确程序段是( A ),(A)MOV AX,4241H,MOV 2100H,AX,(B)MOV AX,AB,MOV 2100H,AX,33,14.下列程序段执行后,(BX)=?,MOV CL,7,MOV BX,8016H,SHR BX,CL,答案:0100H,15. 假设(SP)=0100H,(SS)=6000H,执行POP AX指令后,栈顶的物理地址是多少?,答案:60102H,34,16. 近过程NEAR的RET指令把当前栈顶的一个字弹出到(IP),远过程FAR的RET指令弹出一个字到(IP)后又弹出一个字到(CS),IRET指令是(中断返回),从堆栈顺序弹出三个字分别送到(IP)、(CS)和(FLAGS)中。,35,17. 程序段如下:,MOV AX,0405H,MOV BL,06H,AAD,DIV BL,执行后,(AX)=?,答案:0307H,36,18. AX和CX中内容为无符号数,BX和DX中内容为带符号数,试用CMP指令和条件转移指令,实现以下判断。,(1)若AX超过CX,则转至BIGER,CMP AX,CX,JA BIGER,(2)若BX超过DX,则转至BIGER,CMP BX,DX,JG BIGER,(3)若AX小于CX,则转至LESS,CMP AX,CX,JB LESS,37,(4)若BX小于DX,则转至LESS,CMP BX,DX,JL LESS,(5)若AX=CX,则转至EQUAL,CMP AX,CX,JE/JZ EQUAL,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!