DATA2 ENDS
设DA1物理地址是134CEH,那么DATA2段基值,DA2的偏移量分别是多少?
4.10、下述程序段执行后,寄存器AX,BX和CX的内容分别是多少?
ORG DW MOV MOV MOV MOV
AX, DA_WORD BX, OFFSET DA_WORD CL, BYTE PTR
DA_WORD+1
0202H 20H
DA_WORD
CH, TYBE DA_WORD
4.11、下述程序段执行后,寄存器BX和CX的内容分别是多少?
4.12、下述程序段执行后,寄存器AX和BX的内容分别是多少?
MOV MOV
AX, ALPH LE NUM BX, ALPH GT NUM
NUM
EQU
945H
NUM1=20*20 NUM2 REL1
MOV MOV
BX, REL2
CX, WORD PTR REL2
EQU DW
400H NUM1 LE
NUM2, EQ NUM2
ALPH=35*27
4.13、下述语句汇编后,$+20H和$+40H中的$值分别是多少
NUM= DA1 DA2
DB
10H,$+20H,30H,$+490H
ORG
34H
DA1 + NUM + 40H
4.14、试用数据定义语句DW改写下述语句,使它们在存储器中有完全相同的存储情况。
DA1 DA2
DB ?ABCDEFGHI?
DB 12H, 34H, 56H,7 8H, 9AH, 0BCH
4.15、现有两个程序摸块:
TITLE
PROC
TITLE PROC2
SEGMEND
10H DUP(0)
DATA1 DA1
SEGMENT DATA2 DA2
DB 10H DUP(0)
DW
DATA1 ENDS CODE1
DATA2 ENDS
SEGMENT
CODE2
SEGMENT
ASSUME CS: CODE1 ASSUME DS: DATA1
ASSUME CS: CODE2 ASSUME DS: DATA2
PROC FAR
START: SUB2
MOV DX, DA2+2 CALL SUB2
MOV AL, DA1+2 RET
SUB2 ENDP
CODE1
ENDS END
CODE2 ENDS
END SUB2
ATART
在上述两个程序模块汇编、连接后,准备从START处开始执行。但在汇
编连接期间出现语法错误,为使上述两程序模块能正确汇编、连接并执行,试 修改和补充有关语句。
4.16、指出下列程序中哪几条语句有语法错误,并指出是什么错误(如符号有没有定义) 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
指令语句
DATA SEGMENT
VAR1 DB 0, 3, 5H, 0B7H VAR2 DB 12H, A4H, 5BH VAR3 DB “ABCDEFGHIJ”
VAR4 DW 1234H,”XY”, 0ACDH, 87H VAR5 DB DUP (?) DATA ENDS STACK1
SEGMEND PARA STACK
DW 10H DUP (0) STACK1 COSEG
ENDS SEGMENT
ASSUME CS: COSEG, DS: DATA,SS: STACK1 MOV MOV LEA
BX, DATA DS, BX SI, VAR5
START
16 17 18 19 20 21 22 23 24 25
MOV MOV MOV SHL ADD MOV MOV INT ENDS END
BX, OFFSET VAR3 AX,VAR1+2 [SI],0ABH AX, 3 VAR1, VAR2+2 [BX], [SI] AH, 4CH 21H
CODE
START
4.17、试用段定义伪指令编制一个小练习程序。待程序调试通过后,试对下列情况作一试验,观察它们在汇编、连接、调试时有何变化? ⑴、在组合类型中没有指定”STACK?的段;
⑵、有2~3个数据段组合类型中分别设置PUBLIC和COMMON; ⑶、在定位类型中有的段设置为WORD或BYTE。