1.设(DS)=2000H, (ES)=3000H
(SS)=4000H, (BX)=1000H
(BP)=1000H, (SI)=0001H
(DI)=0002H
(21000H)=1234H, (21002H)=5678H
(31000H)=9ABCH, (31002H)=0DEF0H
(41000H)=3456H, (41002H)=789AH
计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。
MOV AX, ES:[1000H]
物理地址 (AX)=
MOV AX, [BX]
物理地址 (AX)=
MOV AX,[BP+DI]
物理地址 (AX)=
MOV AX, [BX][SI]
物理地址 (AX)=
6.在下列程序段括号中,填入正确的答案。
SEGMENT
BUF DB 12H,56H
DATA ENDS
7.指出下列指令错误原因,填入括号中。
A. MOV AX,BL ;
B. MOV CS,AX ;
C. DEC GAMA[BX] ;
D. MOV ES,5600H ;
E. SUB AX,DS ;
8.下列语句在存贮器中分别为变量分配多少字节?请填入括号中。
VR1 DW ? ;
VR2 DW 4 DUP(?),2;
CONT EQU 10 ;
9.设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202H)=OF7H,(31203H)=90H请写出下列各条指令单独执行后,有关寄存器及存储单元的内容,若该指令影响标志位,则指出其值。
A. DEC BYTE PTR〔1200H〕 ; 问:(31200)=_ ___H,CF=_ ___
B. SAR BYTE PTR [SI+1200H],1 ; 问:(31202H)=_ ___H,ZF=_ ___
C. MOV AX,WORD PTR〔BX+SI〕 ;问:AX=_ ___H,SF=_ ___
2.每组写一条程序指令,使: (6分)
A. BX寄存器的低四位置1
B. AX寄存器的低四位清0
C. 用TEST指令测试DL寄存器的第3位和第6位是否同时为0。
3.在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: (4分)
;保护现场
PUSH AX
PUSH BX
PUSH CX
PUSH DX
;恢复现场
┇
┇
┇
试写出恢复现场时的指令序列。
1.对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么?(5分)
FLDB DB ?
TAB1 DW 20 DUP(?)
TAB2 DB ‘ABCD’
(A) MOV AX,TYPE FLDB
(B) MOV AX,TYPE TAB1
(C) MOV CX,LENGTH TAB1
(D) MOV DX,SIZE TAB1
(E) MOV CX,LENGTH TAB2
下面程序段执行完后,AL的内容是什么? (5分)
MOV AL,10
ADD AL,AL
SHL AL,1
MOV BL,AL
SHL AL,1
ADD AL,BL
3试问下面的程序段完成的功能是什么? (5分)
SAL AX,1
RCL DX,1
5.已知程序段:
STRING DB ‘ABCDEFGHIJ’
┇
MOV AH,01 ;从键盘输入字符1~9
INT 21H
AND AL,0FH
DEC AL
XOR AH,AH
MOV BX,OFFSET STRING
ADD BX,AX
MOV DL,[BX]
MOV AH,02H ;显示输出
INT 21H
┇
试回答: (1)上述程序段的功能是什么?
(2)如从键盘输入字符‘4’,程序段有什么结果?(6分)