《微机原理习题课件》由会员分享,可在线阅读,更多相关《微机原理习题课件(38页珍藏版)》请在金锄头文库上搜索。
1、第三章 习题1 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
2、 (5)MOV AL,B (6)MOV DI,ES:BX (7)MOV DX,BP (8)MOV BX,20HBX2微机原理习题课件解解:(1)寄存器寻址)寄存器寻址 无物理地址无物理地址(2)立即寻址)立即寻址 无物理地址无物理地址(3)立即寻址)立即寻址 无物理地址无物理地址(4)基址变址相对寻址)基址变址相对寻址PA=(DS)10HVAR(BX)()(SI)608F0H(5)立即寻址)立即寻址 无物理地址无物理地址(6)寄存器间接寻址)寄存器间接寻址 PA=(ES) 10H(BX)20800H(7)寄存器间接寻址)寄存器间接寻址PA=(SS) 10H(BP)16200H(8)寄存器相对寻
3、址)寄存器相对寻址PA=(DS) 10H(BX)20H60820H3微机原理习题课件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+DATA4微机原理习题课件解解: (1)JMP 2300H 段内直接转移段内直接转移 PA(CS)10H(IP)+2
4、300H05500H (2)JMP WORD PTRBX 段内间接转移段内间接转移 PA(CS)10HBX =0200H+(217A0H) =04300H (3)JMP DWORD PTRBX+DATA 段间间接转移段间间接转移 PABX+DATA=(217E2H) 10H(217E0H) =90000H+0400H=90400H5微机原理习题课件34试说明指令试说明指令MOV BX,5BX与指令与指令LEA BX,5BX的区别。的区别。答:答: MOV BX,5BX是数据传送类指令,表示将数据段中以是数据传送类指令,表示将数据段中以(BX+5)为偏移地址的)为偏移地址的16位数据送寄存器位数
5、据送寄存器BX中。中。 LEA BX,5BX是取偏移地址指令,结果为是取偏移地址指令,结果为(BX)=(BX)+5,即操作数的偏移地址为(,即操作数的偏移地址为(BX)+535设堆栈指针设堆栈指针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,(,(A
6、X)=(BX)=1234H6微机原理习题课件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、错,寄存器操作数不加段重设符(7)JMP BYTE PTRBX 转移地址的字长至少应是转移地址的字长至少应是16位位 (8)OUT 230H,AX对对I/O指令,端口地址超过指令,端口地址超过8位,必须采用间接寻址位,必须采用间接寻址(9)MOV DS,BP 正确正确 (10)MUL 39HMUL指令中操作数不能为立即数指令中操作数不能为立即数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
8、,SF=1,ZF=038试比较无条件转移指令、条件转移指令、调试比较无条件转移指令、条件转移指令、调用指令和中断指令有什么异同?(略)用指令和中断指令有什么异同?(略)9微机原理习题课件39试判断下列程序执行后,试判断下列程序执行后,BX中的内容。中的内容。 MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL 解:该程序是首先将解:该程序是首先将BX内容不带进位循环左移内容不带进位循环左移1位,位,再循环再循环 右移右移3位,即相当于将位,即相当于将BX内容不带进位循内容不带进位循环右移环右移2位,位, 所以结果为(所以结果为(BX)=C02DH10微机原理习题课件
9、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,0101H11微机原理习题课件 311分别指出以下两个程序段的功能。分别指出以下两个程
10、序段的功能。(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执行以下两条指令后,标志寄存器执行以下两条指令
11、后,标志寄存器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=113微机原理习题课件313将将+46和和-38分别乘以分别乘以2,可应用什么,可应用什么指令来完成?如果除以指令来完成?如果除以2呢?呢?解:解:将将+46和和-38分别乘以
12、分别乘以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
13、)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
14、,BUFFER MOV CX,200 XOR BX,BXAGAIN:MOV AL,SI CMP AL,0 JNE GOON INC BXGOON: INC SI LOOP AGAIN HLT16微机原理习题课件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中的内容相乘。
15、中的内容相乘。 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,CFOF118微机原理习题课件补充作业补充作业1. 系统有一个堆栈段区,其地址为系统有一个堆栈段区,其地址为1250H:0000H1250H:0100H,(SP)
16、=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
17、存入,存入, 此时(此时(SP)=0050H20微机原理习题课件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,76EBH22H24H13H10H00H20H00H13H00H30H.31320H31322H32320H32322H32324H21微机原理习题课件解:(解:(1)LEA
18、 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=32320
19、H 则(则(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=122微机原理习题课件补充习题补充习题1. 一个有一个有16个字的数据区,起始地址为个字的数据区,起始地址为70A0H:DDF6H,则这个数据区末字单元,则这个数据区末字单元的物理地址是(的物理地址是( ) (A)7E815H (B)7E816H (C)7E814H (D)7E7F8H 2. 已知(已知(BL)6FH,执行,
20、执行TEST BL,8FH后,后, (BL)()( )(A)0FH (B)6FH (C)0 (D)EFH23微机原理习题课件3. 读程序回答问题读程序回答问题 XOR AX,AX MOV BX,1 MOV CX,5LOP:ADD AX,BX INC BX INC BX LOOP LOP HLT上述程序段执行后,上述程序段执行后,(AX)25,(BX)1124微机原理习题课件4. 在程序运行过程中,确定下一条指令的在程序运行过程中,确定下一条指令的物理地址的计算表达式是(物理地址的计算表达式是( )(A)()(CS)10H(IP) (B) (DS)10H(DI) (C) (SS)10H(SP)
21、(D) (ES)10H(SI)25微机原理习题课件5. 设(设(SS)2000H,则下列程序执行后,则下列程序执行后,(SP)()( ),(),(AL)中数据在内存)中数据在内存地址(地址( )中,()中,(AH)中数据在内存地址)中数据在内存地址( )中。)中。 MOV SP,2000H MOV AX,1234H PUSH AX答案:答案:1FFEH,21FFEH,21FFFH26微机原理习题课件6. 有如下程序段有如下程序段 MOV AX,1234H MOV BX,5678H ADD AL,BL DAA ;(;(AL)=12H,CF=1 MOV CL,AL MOV AL,AH ADC AL
22、,BH DAA ;12H+56H+CF=69H执行程序后,(执行程序后,(AL)=69H,(,(CL)=12H27微机原理习题课件7. 寄存器间接寻址时,操作数在(寄存器间接寻址时,操作数在( )中)中 (A)寄存器)寄存器 (B)存储器)存储器 (C)堆栈区)堆栈区 (D)累加器)累加器8. 执行返回指令,退出中断服务程序,这执行返回指令,退出中断服务程序,这时返回地址来自(时返回地址来自( ) (A)ROM区区 (B)程序计数区)程序计数区 (C)堆栈区)堆栈区 (D)CPU的暂存寄存器的暂存寄存器28微机原理习题课件9. 读程序回答问题读程序回答问题 MOV AX,1234H MOV C
23、L,4 ROL AX,CL DEC AX MOV CX,4 MUL CX HLT执行后,(执行后,(AH)8DH,(,(AL)00H29微机原理习题课件10. 下面程序段中,当满足条件转到下面程序段中,当满足条件转到NEXT标号执行时,(标号执行时,(AL)的值正确的是()的值正确的是( ) CMP AL,0FBH JNB NEXT NEXT: (A)80H (B)8FH (C)F0H (D)FEH30微机原理习题课件答案:答案:SP=1FFEH,AX=00F0HDX=ACF0H,DI=1234H,CF=0,ZF=0MOV SP,2000HMOV AX,00F0HMOV SI,1234HMOV
24、 DX,5678HPUSH SIPOP DISHL DX,1TEST AX,DXPUSH DX11. 执行下列程序后,执行下列程序后,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送
25、送2101H的的 正确程序段是(正确程序段是( A )(A)MOV AX,4241H MOV 2100H,AX(B)MOV AX,AB MOV 2100H,AX33微机原理习题课件14.下列程序段执行后,(下列程序段执行后,(BX)=?MOV CL,7MOV BX,8016HSHR BX,CL答案:答案:0100H15. 假设(假设(SP)=0100H,(,(SS)=6000H,执行执行POP AX指令后,栈顶的物理地址是指令后,栈顶的物理地址是多少?多少?答案:答案:60102H34微机原理习题课件16. 近过程近过程NEAR的的RET指令把当前栈顶的一指令把当前栈顶的一个字弹出到(个字弹出
26、到(IP),远过程),远过程FAR的的RET指令指令弹出一个字到(弹出一个字到(IP)后又弹出一个字到)后又弹出一个字到(CS),),IRET指令是(中断返回),从堆指令是(中断返回),从堆栈顺序弹出三个字分别送到(栈顺序弹出三个字分别送到(IP)、)、(CS)和()和(FLAGS)中。)中。 35微机原理习题课件17. 程序段如下:程序段如下: MOV AX,0405H MOV BL,06H AAD DIV BL执行后,(执行后,(AX)=?答案:答案:0307H36微机原理习题课件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 LESS37微机原理习题课件(4)若)若BX小于小于DX,则转至,则转至LESS CMP BX,DX JL LESS(5)若)若AX=CX,则转至,则转至EQUAL CMP AX,CX JE/JZ EQUAL38微机原理习题课件