1.写出以下指令汇编后STR1的偏移地址
DATAD SEGMENT
BU1 DB 10H DUP(?) STR1 DB ‘HELLO’ DATAD
ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATAD,ES:DATAD START:
………
2.试指出下列程序中有哪些语法错误,并说明是什么错误。
DATA SEGMENT
VAR1 DB 0,53H,0F5H,1200 VAR2 DB 12H,0A4,6B VAR3 DB ‘CTEC2668’
VAR4 DW 5566H,4433H,’ABCD’
3.说明以下程序段的功能 (1)程序段1:
DATA SEGMENT A DB ‘123ABC’ DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA BX,A MOV CX,6
LP:MOV AH,2 MOV AL,[BX] XCHG AL,DL INC BX INT 21H
LOOP LP MOV AH,4CH INT 21H CODE ENDS END START
(2)程序段2:
以下程序执行完标号为A的指令后:CS=( ),IP=( )
DATA SEGMENT
TABLE DW 3400H,5600H,2300H,4500H,2300H,
1200H,2344H,3500H
DATA ENDS CODE SEGMENT
SSUME CS:CODE,DS;DATA START:MOV AX,DATA MOV DS,AX
MOV BX,OFFSET TABLE
MOV SI,06H
A:JMP DWORD PTR[BX+SI+2] ……
4.以下程序运行后,AL中的内容是多少?
DATA3 DB 81H,67H,55H,0DAH,77H …………………
MOV CX,WORD PTR DATA3 AND CX,0FH MOV AL,DATA3+3 SHL AL,CL
5.以下程序运行期间,BX中的数据等于什么值才能使程序执行标
号L1的指令并转向L2? MOV AX,20
ADD AX,BX
JNZ L1
………… JMP L2 L1: JC L2
………… L2: …………
6. 以完整的汇编语言源程序结构编写实现以下要求的程序段 (1)定义字符输入缓冲区BUFFER,缓冲区长度为20个字节;定
义字节变量DATA,其长度也为 20个字节; (2)从键盘接收字符‘Hello,my friends!’;
(3)将BUFFER中的字符串按从左到右的方向传送到DATA中; (4)在DATA中查找有无‘!’(!的ASCII码=21H)。若找到‘!’,
则将其所在单元的偏移地址送BX,将查找次数送DX;若没有找到则返回DOS。