内容发布更新时间 : 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