微机原理与接口技术(第二版)清华大学出版社

内容发布更新时间 : 2025/3/19 8:10:18星期一 下面是文章的全部内容请认真阅读。

答:MOV AX, 1234H (AX)=1234H, CF=0,SF=0,ZF=0 MOV CL, 4

ROL AX,CL (AX)=2341H,CF=1,SF=0,ZF=0 DEC AX (AX)=2340H,CF=1,SF=0,ZF=0 MOV CX,4

MULL CX (AX)=8D00H, CF=0,SF=1,ZF=0

INT 20H

结束后,(DX)=0000H, (AX)=8000H

9. 试分析下列程序段:

ADD AX, BX JNC L2 SUB AX, BX JNC L3 JMP SHORTL5

如果AX,BX的内容给定如下:

AX BX (1) 14C6H 80DCH (2) B568H 54B7H

问该程序在上述情况下执行后,程序转向何处。 答:(1)转到L2处 (2)转到L3处

习题4

1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。

VAR1 DB 10,2

VAR2 DW 5 DUP(?),0

VAR3 DB ‘HOW ARE YOU?’,3 DUP(1,2) VAR4 DD -1,1,0 答:字节空间:

VAR1:2; VAR2:12; VAR3:13; VAR4:8。 存储空间的分配图:

2.假定VAR1 和VAR2 为字变量,LAB 为标号,试指出下列指令的错误之处。 (1)ADD VAR1,VAR2 (3)JMP LAB[CX]

(2)SUB AL,VAR1 (4)JNZ VAR1 (6)SHL AL, 4

(5) MOV [1000H],100

答:(1) 在算术运算指令中,两个操作数不能同时为存储器寻址方式 (2) AL 为字节,VAR1 为字变量,字长不相等;

(3) 错误1:寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX寄存器。

错误2:汇编格式错误,无法判段是段内转移还是段间转移。 (4) 转向地址应为标号,不能是变量;

(5) 目的操作数的类型不确定;

(6) SHL 指令中,当所移位数超过1 时,必须用CL取代所移位数。

3.对于下面的符号定义,指出下列指令的错误。

A1 DB ? A2 DB 10 K1 EQU 1024

(1) MOV K1,AX (2)MOV A1,AX (3)CMP A1,A2 (4)K1 EQU 2048 答:(1)K1 为常量,不能用MOV 指令赋值; (2)A1 为字节,AX 为字变量,类型不一致; (3)A1 和A2同为存储器寻址方式,不符合语法规则; (4)K1 重新赋值前,必须用PURGE 释放。

4.数据定义语句如下所示: FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) FORTH DB 4 DUP (?)

自FIRST 单元开始存放的是一个四字节的十六进制数(低位字节在前),要求: 编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自THIRD 开始的单元,求补后放到FORTH开始的单元。(注意保留移出部分) 答:

DATA SEGMENT

FIRST DB 90H,5

>>鐏炴洖绱戦崗銊︽瀮<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi