内容发布更新时间 : 2025/4/14 16:12:52星期一 下面是文章的全部内容请认真阅读。
03H 00H 05H 03H 00H 05H 03H 00H 05H
12、定义数据段如下,画出数据存储示意图,并说明变量X1和X2所对应的逻辑地址各是多少?
DATA SEGMENT AT 10A0H ORG 0010H X1 DB 22,33, ORG $+ 0020H
X2 DB ‘AB12CD’ DATA ENDS
10A00H
. . . 10A10H 16H
21H
…
10A32H 41H 42H
31H
32H
43H
44H
X1逻辑地址:10A0H:0010H X2的逻辑地址:10A0H:0032H 13、定义数据段如下,写出执行以下指令后的结果。 DATA SEGMENT
DA1 DW 2437H ,14A2H DA2 DB ‘ABCD’
DA3 DD 10 DUP (?) DATA ENDS
(1)MOV BX,DA1 ;(BX)=2437H (2)MOV SI,OFFSET DA1 ;(SI)=0000H (3)MOV AL, TYPE DA1 ;(AL)=2 (4)MOV AL,[DA2+02H] ;(AL)=‘C’=43H (5)MOV AL,LENGTH DA3;(AL)=10 (6)MOV AL,SIZE DA3;(AL)=10 14、程序中数据段定义的数据如下: DATA SEGMENT
NAMES DB‘GOOD MORNING!’ DW 2050H,78H,3080H DATA ENDS
请指出下列指令序列执行后累加器中的结果是多少? (1) MOV BX,OFFSET NAMES
MOV AL,[BX+03H]
(2) MOV BX,12
MOV SI,3
MOV AX,NAMES[BX+SI]
(3) MOV BX,12
MOV SI,3
LEA AX,NAMES[BX+SI]
答:(1)[BX+03H]对应的是“D”因此结果是 44H (2)78H
(3)LEA 将源操作数的逻辑地址送到目标操作数,因此 0FH
18、编写程序,将MBUF为起始单元的5个数按相反次序传送到NBUF开始的存储单元中。 答:DATA SEGMENT
MBUF DB 1,2,3,4,5 COUNT EQU $-MBUF NBUF DB 5 DUP(?) DATA ENDS
STACK SEGMENT PARA STACK DB 20H DUP(?) STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV BX,OFFSET MBUF MOV CX,5 LOP1: PUSH [BX] INC BX
DEC CX JNZ LOP1
MOV BX,OFFSET NBUF MOV CX,5 LOP2:POP [BX] INC BX DEC CX JNZ LOP2 MOV AX,4CH INT 21H CODE ENDS END START
2