4.12、下述程序段执行后,寄存器AX和BX的内容分别是多少?
4.13、下述语句汇编后,$+20H和$+40H中的$值分别是多少
ORG
34H
MOV MOV
AX, ALPH LE NUM BX, ALPH GT NUM
NUM
EQU
945H
ALPH=35*27
NUM= DA1 DA2
DB
10H,$+20H,30H,$+490H
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
DW
10H
DATA1 DA1
SEGMENT DATA2
DA2
DB 10H DUP(0)
DUP(0)
DATA2 ENDS
DATA1 ENDS
CODE1
MOV DX, DA2+2 CALL SUB2
MOV AL, DA1+2
SEGMENT
CODE2
SEGMENT
ASSUME CS: CODE2
ASSUME DS: DATA2
ASSUME CS: CODE1 ASSUME DS: DATA1
START: SUB2 PROC FAR
RET
SUB2 ENDP
CODE1
ENDS END
CODE2 ENDS
END
SUB2
ATART
在上述两个程序模块汇编、连接后,准备从START处开始执行。但在汇
编连接期间出现语法错误,为使上述两程序模块能正确汇编、连接并执行,试 修改和补充有关语句。
4.16、指出下列程序中哪几条语句有语法错误,并指出是什么错误(如符号有没有定义) 序号 1 2 3 4 5 6 7
指令语句
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
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
STACK1 DW
SEGMEND PARA STACK
10H DUP (0)
ENDS
STACK1 COSEG
SEGMENT
ASSUME CS: COSEG, DS: DATA,SS: STACK1 MOV MOV LEA
BX, DATA DS, BX SI, VAR5 BX, OFFSET AX,VAR1+2 [SI],0ABH AX, 3
VAR1, VAR2+2 [BX], [SI] AH, 4CH
VAR3
START
MOV MOV MOV SHL
ADD MOV MOV INT ENDS END
21H
CODE
START
4.17、试用段定义伪指令编制一个小练习程序。待程序调试通过后,试对下列情况作一试验,观察它们在汇编、连接、调试时有何变化? ⑴、在组合类型中没有指定”STACK’的段;
⑵、有2~3个数据段组合类型中分别设置PUBLIC和COMMON;
⑶、在定位类型中有的段设置为WORD或BYTE。