微机微机原理与接口技术课后答案内容摘要:

PUSH CX,POP AX 后,栈顶和栈底的地址分别为( )。 A. 201FAH, 20200H B. 201FCH, 20200H C. 201FCH, 20200H D. 201FDH, 201FFH 【 解 】 A 1 以下那个说法正确( )。 A. 指令 MOV AL, [BX+5]中的源操作数的寻址方式是寄存器间接寻址。 B. 指令 MOV AL, [BX+SI]中的源操作数的寻址方式是基址变址寻址。 C. 指令 MOV AL, [BX+SI+5]中的源操作数的寻址方式是相对的寄存器间接寻址。 D. 指令 MOV AL, [1000H]中的源操作数的寻址方式是立即寻址。 【 解 】 B 1 在循环( LOOP)和串处理指令中,用作计数器的寄存器是( )。 【 解 】 C 1 无条件段间转移指令的执行改变( )。 ,SP ,IP 【 解 】 D 指令 MOV AX, [BX][SI]中源操作数采用的寻址方式是( )。 【 解 】 A 2 设 DS=8225H, DI=3942H,指令 NEG BYTE PTR[DI]操 作数的物理地址是( )。 B. 86192H 【 解 】 A 2 循环指令 LOOPNZ 终止循环的条件是( )。 A. CX=0,且 ZF=0 B. CX=0,或 ZF=1 C. CX=0,或 ZF=0 D. CX=0,且或 ZF=1 【 解 】 D 2 对寄存器 AX 的内容乘以 4 的正确指令序列是( )。 A. SHR AX, 1; SHR AX, 1 B. SHL AX, 1; SHL, AX, 1 C. ROL AX, 1; ROL AX, 1 D. RCR AX, 1; RCR AX, 1 【 解 】 B 2 执行 INC 指令除对 SF、 ZF 有影响外,还要影响的标志位是( )。 A. OF, AF, PF B. OF, AF, CF C. OF, PF, CF D. AF, PF, CF 【 解 】 A 2 下列传送指令中有语法错 误的是( )。 A. MOV CS, AX B. MOV DS, AX C. MOV SS, AX D. MOV ES, AX 【 解 】 A 2 执行除法指令后,影响的标志位是( )。 A. CF, OF B. SF, ZF C. CF, OF, SF D. AF, CF, OF, PF, SF, ZF 【 解 】。 2 设( AX) =2020H ( BX)= 1000H,则在执行了指令 “CMP AX, BX”后,标志位 CF 和 ZF 的值分别为( )。 A. 0, 0 B. 0, 1 C. 1, 0 D. 1, 01 【 解 】 A 2 CPU 执行算术运算指令不会影响的标志位是( )。 【 解 】 D 2 下列 8086 指令中,对 AX 的结果与其他三条指令不同的是( )。 AX, 0 B. XOR AX, AX AX, AX AX, 0 【 解 】 D 寄存器间接寻址方式中,操作数在( )中。 【 解 】 C 二、简答题: 指出下列指令的错误 : (1) MOV AH,BX (2) MOV [SI],[BX] (3) MOV AX,[SI][DI] (4) MOV AX,[BX][BP] 【 解 】 (1)源操作数与目的操作数的数据格式不一致。 (2)源操作数与目的操作数都为存储器寻址。 (3)源操作数所使用的寄存器都是变址寄存器。 (4) 源操作数所使用的寄存器都是基址寄存器。 试分析下面的程序段完成什么操作。 MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 【 解 】 将 DX,AX 寄存器中的双字左移 4 位,即乘以 16。 为什么用増量指令或减量指令设计程序时,在这类指 令后面不用进位标志作为判断依据。 【 解 】 因为 INC 和 DEC 指令不影响 CF 进位标志位。 假设 (CS)=3000H, (DS)=4000H, (ES)=2020H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写 出下列各条指令单独执行完后 , 有关寄存器及存储单元的内容 , 若影响条件码请给出条件码 SF、 ZF、 OF、 CF 的值。 (1) SBB AX,BX (2) CMP AX,WORD PTR[SI+0FA0H] (3) MUL BYTE PTR[BX] (4) AAM (5) DIV BH (6) SAR AX,CL (7) XOR AX,0FFE7H (8) REP STOSB (9) JMP WORD PYR[BX] (10) XCHG AX,ES:[BX+SI] 【解】( 1)( AX)= 0F060H, SF= 1,ZF= 0,OF= 0,CF= 1; ( 2) 所有寄存器和存储单元的内容不变, SF= 1,ZF= 0,OF= 1,CF= 1; ( 3) ( DX)= 612H,( AX)= 0H, CF= OF= 1, SF、 ZF 未定义 ( 4) ( 5) ( AX)= 20ACH; ( 6) ( AX)= 0103H, SF= 0, ZF= 0, CF= 0; ( 7) ( AX)= 0DF87H, SF= 1, ZF= 0, CF= OF= 0; ( 8) ( CX)= 0H,( DX)= 2FFBH,( 22FFCH)= 6060H,( 22FFEH)= 6060H, ( 23000H)= 0B160H; ( 9) ( IP)= 0A006H; ( 10) ( AX)= 00B0H, (25060H)= 2060H。 用普通运算指令执行 BCD 码运算时,为什么要进行 十进制调整。 具体讲 ,在进行 BCD 的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令。 【解】十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果,分成压缩 BCD 码和非压缩 BCD 码调整。 在进行 BCD 的加、减、乘运算时,十进制调整指令必须位于运算指令之后,而除法运 算时则十进制调整指令应放在运算指令之前,对被除数做调整。 假定 AX 和 BX 中的内容为带符号数 , CX 和 DX 中的内容为无符号数 , 请用比较指令和条件转移指令实现以下判断 : (1)若 DX 的值超过 CX 的值 ,则转去执行 EXCEED (2)若 BX 的值大于 AX 的值 ,则转去执行 EXCEED (3)CX 中的值为 0 吗 ? 若是则转去执行 ZERO (4) BX 的值与 AX 的值相减 , 会产生溢出吗 ? 若溢出则转 OVERFLOW (5)若 BX 的值小于 AX 的值 ,则转去执行 EQ_SMA (6)若 DX 的值低于 CX 的值 ,则转去执行 EQ_SMA 【解】( 1) CMP DX, CX JA EXCEED; ( 2) CMP AX, BX JL EXCEED; ( 3) JCXZ ZERO; ( 4) CMP BX, AX JO OVERFLOW; ( 5) CMP AX, BX JGE EQ_SMA; ( 6) CMP DX, CX JB EQ_SMA。 8086/ 8088 用什么途径来更新 CS 和 IP 的值 ? 【解】( 1)在 CPU 执行任何一条指令时, CPU 都会根据指令的长度自动修改 IP 寄存器的值,使之指向下一条指令; ( 2) 在使用转移指令 ,且使用段内直接寻址,或使用循环指令时,新( IP)即转向的有效地址 = 当前 (IP) + 位移量,也就是说 IP 的值是通过计算得到的。 ( 3) 在使用转移指令,且使用段内或段间间接寻址时,是从相应的存储单元取出值来更新 IP(段内)或者 CS 和 IP(段间)。 ( 4) 在子程序调用或中断以及返回时,则是利用堆栈来更新 IP(段内子程序调用)或者 CS和 IP(段间子程序调用或中断)。 字节扩展指令和字扩展指令用在什么场合。 举例说明。 【解】 遇到两个字节相除时,要预先执行 CBW 指令,以便产生一个双倍长度的被除数。 否则就不 能正确的执行除法操作。 CWD 同理。 例 MOV AL, 0C8H CBW MOV BL, 43H IDIV BL 在此例中, ( AL) =C8H,应是 56D,若不用 CBW 指令,被除数( AX) =00C8H,则是200D,运算结果就会出错。 用其他指令完成和下列指令一样的功能 : (1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB 【解】 ( 1) LOOP1: MOV AL, BYTE PTR [SI] MOV BYTE PTR ES: [DI], AL DEC SI(或者是 INC SI) DEC DI(或者是 INC DI) LOOP LOOP1; ( 2) LOOP1: MOV AL, BYTE PTR [SI] DEC SI(或者是 INC SI) LOOP LOOP1; ( 3) LOOP1: MOV BYTE PTR ES: [DI], AL DEC DI(或者是 INC DI) LOOP LOOP1; ( 4) LOOP1: CMP AL, BYTE PTR ES: [DI] JNZ EXIT DEC DI(或者 是 INC DI) EXIT: LOOP LOOP1。 HLT 指令用在什么场合。 如 CPU 在执行 HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令。 【解】 HLT 是停机指令,它可使机器暂停工作。 HLT 用在使 CPU 处于暂停状态而等待硬件中断的场合。 在执行 HLT 指令遇到硬件中断并返回后将执行 HLT 后面的一条指令。 三、读程分析题: 分析执行下列指令序列后的结果: 1) MOV AX, 1234H MOV BX, 00FFH AND AX, BX (AX)=______。 【解】( AX)= 34H。 2) MOV AL, 01010101B AND AL, 00011111B OR AL, 11000000B XOR AL, 00001111B NOT AL (AL)=_______。 【解】( AL)= 25H。 MOV DL, 05H MOV AX, 0A00H MOV DS, AX MOV SI, 0H MOV CX, 0FH AGAIN: INC SI CMP [SI],DL LOOPNE AGAIN HLT 本程序实现了 _________功能。 【解】 在以 0A001H 开始的 15 个单元中查找 05H。 MOV AX,DSEGADDR MOV DS, AX MOV ES,AX MOV SI, OFFSET B1ADDR MOV DI,OFFSET B2ADDR MOV CX,N CLD REP MOVSB HLT 本程序实现了 ___________功能。 【解】 将 B1ADDR 中。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。