.
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。
.