微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社

发布时间:2024-10-08

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社 (周杰英 张萍 郭雪梅 著)

第3章 80x86指令系统

习题与参考答案

1、指出下列指令中操作数的寻址方式(8086系统)。

(1) MOV AX,100 (2) MOV AX,[100] (3) MOV DL,[BP+SI]

(4) MOV [BX],CX (5) MOV DX,[SI] (6) MOV 1234H[BX],DS (7) MOV [DI+5678H],AL

(8) MOV 12[BP][DI],BH (9) POP CX

(10)MOV

AX,[BX+SI+10]

解:

2、指出下列指令中操作数的寻址方式(80386系统)。

(1) MOV [EBX+12H],AX (2) MOV [EBP+EDI*2],EBX (3) MOV [EBX*4],BX

(4) MOV EDX,[EAX+ESI*8-12H]

解:

3、指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。

(1) PUSH 1234H

(2) MOV CS,AX (3) IN

AX, 300 (4) MOV AX,[DX+12] (5) MOV

BX,[BX]

(6) MOV DS,1000H (7) XCHG AL,AL (8) MOV AL,100H (9) MOV DX,AL (10)LEA BL,[BX+5] (11)LEA DX,BX (12)MOV [1000H],12H

(13)ADD AX,DS (14)SUB [0100H],BYTE PTR [0001] (15)SHL

BL,2

(16)SHR

CL,CL

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社 (周杰英 张萍 郭雪梅 著)

(17)MUL AL,BL (18)INT 400

解:(1)非法,8086系统不允许PUSH指令的操作数为立即数;

(2)非法,MOV指令中CS不能作为目的操作数; (3)非法,端口号大于0FFH;

(4)非法,DX不能出现在中括号[]内; (5)合法;

(6)非法,不能把立即数赋给段寄存器; (7)合法;

(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;

(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配; (10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器; (11)非法,LEA指令的源操作数只能是存储器操作数;

(12)非法,指令存在歧义,无法确定传送的是字节还是字; (13)非法,段寄存器不能参与算术运算;

(14)非法,源和目的寄存器不能同为存储器操作数;

(15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中; (16)合法;

(17)非法,在8086系统中MUL指令没有双操作数的用法; (18)非法,中断类型号大于0FFH。

4、指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。

(1) MOV AX,12[EBX][SI*16] (2) RCR EAX,10

(3) PUSH 5678H (5) MOV (7) MOV

解:(1)非法,比例因子只能是1、2、4、8,不能是16;

(2)合法; (3)合法;

(4)非法,POP指令的目的操作数不能是立即数; (5)合法;

(6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;

(7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器; (8)合法。

5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器

及堆栈段中的内容。 PUSH AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=? PUSH POP

BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=? AX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节[SP]=?, 栈顶第二字节[SP+1]=?

(4) POP (6) MOV

1000H

AL,[ESP+ESP*2]

[EAX+EAX],EAX BL,[AX+12]

(8) IMUL AL,BL,12

解:(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H

(AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社 (周杰英 张萍 郭雪梅 著)

(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H

6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写

程序段,完成以下各算术运算题。

(1)计算YY←A+B*C,其中A、B、C都是无符号数;

(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数; (3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。 解:

(1)MOV AL,B

MUL ADD ADC

C AL,A AH,0 YY,AX AX,AA AX,BB BL,C BL,D BL X,AL Y,AH AL,A AL,B C

MOV (2)MOV

ADD MOV SUB IDIV MOV MOV

(3)MOV SUB AAS

MUL

AAM

MOV YY, AX

7、利用移位指令编写程序段,实现以下运算。

(1)计算AX←AX*10,其中AX为无符号数;

(2)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位

计算(DX,AX)←(DX,AX)*2。

(3)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位

计算(DX,AX)←(DX,AX)/2。

解: (1)SHL

MOV SHL SHL ADD

AX,1 BX,AX AX,1 AX,1 AX,BX AX,1 DX,1 DX,1 AX,1

(2)SAL RCL (3)SAR

RCR

8、指出以下指令执行后,标志寄存器OF、SF、ZF、AF、PF、CF的状态。

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社 (周杰英 张萍 郭雪梅 著)

(1)(AL)=0FFH,(BL)=20H,执行指令:ADD AL,BL (2)(AL)=01H, (BL)=02H,执行指令:CMP AL,BL (3)(AL)=0FFH,执行指令:INC AL (4)(AL)=0,执行指令:DEC AL

(5)(AL)=0F0H,(BL)=04H,执行指令:IMUL (6)(AX)=1F0H,(BL)=08H,执行指令:DIV BL (7)(AL)=12H, (BL)=34H,执行指令:TEST (8)(AL)=98H,执行指令:SAL 解:

9、在8086系统下,编写实现如下功能的程序段:

(1)从地址为80H的端口中读入一个字节;

(2)如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序; (3)如果该字节最高位为“0”,则转向第(1)步,继续循环扫描。

解: 参考程序段:

AGAIN: IN AL, 80H

TEST AL, 80H

JZ MOV OUT

AGAIN AL, 0FFH 81H, AL AL,1 BL AL,BL

注:0表示结果为0,1表示结果为1,×表示结果不变,—表示结果不确定。

10、我们知道,MOV指令并不能直接修改CS、IP的值,但事实上,我们还可以通过其他方法来达到修改CS、IP的目的。试编写一个程序段,使该程序段运行后,(CS)=0100H,(IP)=0000H。 解:

方法一、利用段间返回指令RETF:

MOV PUSH MOV PUSH RETF

AX,0100H AX AX,0 AX

;段基址入栈 ;偏移量入栈

方法二、利用JMP指令实现段间跳转,假设ADDR为双字变量:

MOV WORD PTR ADDR,0 ;WORD PTR ADDR←偏移量

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社 (周杰英 张萍 郭雪梅 著)

MOV JMP

WORD PTR ADDR+2, 0100H DWORD PTR ADDR

;WORD PTR ADDR+2←段基址

微机原理、汇编语言与接口技术 第三章 习题答案 人民邮电出版社.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219