内容发布更新时间 : 2024/12/23 9:13:50星期一 下面是文章的全部内容请认真阅读。
第4章作业
P153
5. 阅读下列程序,说明每条指令执行后的结果是什么?
X1 DB 65H, 78H X2 DW 06FFH, 5200H X3 DD ?
GO: MOV AL, TYPE X1 MOV BL, TYPE X2 MOV CL, TYPE X3
MOV AH, TYPE GO MOV BH, SIZE X2
MOV CH, LENGTH X3 解:
(1)前三条语句的功能是设置数据于数据段中,从数据段偏移地址0000H开始存放。
变量 X1 X2 X3
六条程序执行结果如下:
(AL)=01H;设置变量类型属性,字节数 (BL)=02H;设置变量类型属性,字节数 (CL)=04H;设置变量类型属性,字节数
(AH)=0FFH;设置GO显示类型,近标号,为-1,补码表示 (BH)=02H;设置数据类型,无DUP时,返回数据类型的字节数 (CH)=01H;无DUP时,返回1。 程序执行后结果如下: 调试程序如下:
STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT X1 DB 65H, 78H X2 DW 06FFH, 5200H X3 DD ? DATA ENDS
1
偏移地址 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H 0009H
数据 65H 78H FFH 06H 78H 00H 随机数 随机数 随机数 随机数 CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS MOV AX,DATA MOV DS,AX GO: MOV AL, TYPE X1 MOV BL, TYPE X2 MOV CL, TYPE X3 MOV AH, TYPE GO MOV BH, SIZE X2 MOV CH, LENGTH X3 POP DS HLT CODE ENDS END START
6. 画出示意图,说明下列变量在内存中如何让存放?
A1 DB 12H, 34H A2 DB ‘Right.’ A3 DW 5678H A4 DB 3 DUP(?)
(1)设置数据于数据段中,从数据段偏移地址0000H开始存放。
变量 A1 A2 A3 A4
调试程序如下:
STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT A1 DB 12H, 34H A2 DB 'Right.'
2
偏移地址 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H 0009H 000AH 000BH 000CH
数据 12H 34H 52H 69H 67H 68H 74H 2EH 78H 56H 随机数 随机数 随机数 A3 DW 5678H A4 DB 3 DUP(?) DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS MOV AX,DATA MOV DS,AX POP DS HLT CODE ENDS END START
12. 编程实现,从键盘输入一个十进制数0~9,查表求键入数字的七段代码(共阳极LED显示器的段码),存入DL中,并在键入数字之前,显示提示信息“Please input a number(0~9):”。 解:
STACK SEGMENT STACK
DB 100 DUP(?) STACK ENDS DATA SEGMENT
TABLE DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H BUF DB 'Please input one number(0~9):',0DH,0AH,'$' DATA ENDS CODE
SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: PUSH DS MOV AX,DATA MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,09H INT 21H MOV AH,1 INT 21H AND AL,0FH
MOV BX,OFFSET TABLE XLAT MOV DL,AL POP DS HLT CODE
ENDS END START
调试结果:
3