NUM1=8
NUM2=NUM1+10H DA1 DB 'COMPUTER'
DB 0AH,0DH COUNT EQU $-DA1
DA2 DW 'CO','MP','UT','ER' DATA ENDS 试回答:
(1)DA1的偏移地址是:( ) (2)COUNT的值是:( ) (3)DA2+5字节单元的内容是 :( ) 9、下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) ┇
MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0
NEXT:MOV AL,DAT1[BX][SI] MOV DAT2[DI],AL INC SI INC DI
LOOP NEXT
10、下列语句在存储器中分别为变量数据区分配多少个字节单元? (1)VAR3 DD 10
(2)VAR4 DW 4 DUP(?),2
11、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?
(1)JMP BX IP=___________________ (2)JMP TABLE[BX] IP=___________________
12、选用NOT,AND,OR XOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。
13、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: PUSH AX PUSH BX PUSH CX PUSH DX
: 恢复现场
试写出恢复现场时的指令序列。 14、完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位; (2)将变量名TABL的段地址送AX; 15、 D1 DB 20H DUP(?)
D2 DW D1
请写出用一条指令实现取D1的偏移地址送给SI中的三种方法。 16、在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,(CS)=2640H,(SS)=2250H,SP=100H,问题: (1)数据段起始地址是多少?
(2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式) (3)代码段最多可以存放多少个字节程序代码?说明理由。 17、已知数据段定义如下: DATA SEGMENT
ORG 100H
BUF DW 'CD',1,3 DUP(4,2 DUP(8,6)) VRA DB 4AH DATA ENDS
单独执行下列语句
LEA BX,BUF BX=_______
MOV CX,VRA-BUF CX=_______(用十六进制数表示)。 18、分别说明下列两组指令中两条指令操作的相同点和不同点 (1)SUB AX,BX CMP AX,BX (2)AND CX,DX TEST CX,DX
19、下列每组指令中的两条指令有否区别?若有,请说出它们的不同点。 A. MOV AX,OFFSET TABLE LEA AX,TABLE B. JMP SHORT L1 JMP NEAR PTR L1 C. MOV AX,[BX] MOV AX,BX
11
D. SUB DX,CX CMP DX,CX
E.MOV [BP][DI],AL MOV DS:[BP][DI],AL 20、系统功能调用的方法如何?举例说明。 21、编程序,使: A.CL寄存器内容取反 B.BX寄存器的低四位置1 C.AX寄存器的低四位清0 D.CX寄存器的低四位变反
E.用TEST指令测试DL寄存器的第3位和第6位是否为零。
22、指令AND AX,OPR1 AND OPR2中,OPR1和OPR2是两个已赋值的变量,问两个AND操作有什么区别?
23、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。 (1)SHR DX,1 (2)RCR DL,1 (3)RCL DX,CL
24、写出完成下述功能的程序段: (1)传送25H到AL寄存器 (2)将AL的内容乘以2 (3)传送15H到BL寄存器 (4)AL的内容乘以BL的内容
并请写出最后(AX)=?
25、写一程序段,求双字长数DX∶BX的相反数。
26、在指令系统中,段内、段间返回均为RET指令。试回答: (1)执行段内返回RET指令时,执行的操作是: (2)执行段间返回RET指令时,执行的操作是: 27、ARY DW 10 DUP(?) ┇
MOV AL,TYPE ARY MOV BL,LENGTH ARY MOV CL,SIZE ARY
上述MOV指令序列执行后的结果是什么? 28、设某数据段: DATA SEGMENT ORG 20H NUM1=8
NUM2=NUM1+10H DA1 DB 'COMPUTER' DB 0AH,0DH COUNT EQU $-DA1
DA2 DW 'CO','MP','UT','ER' DATA ENDS 试回答:(1)DA1的偏移地址是:___________________。
(2)COUNT的值是:___________________。
(3)DA2+5字节单元的内容是:___________________。
29、设DS=3A00H,ES=4A00H,在段地址:偏移地址=4A00H:9000H 字单元中有数据3C50H。请用一条指令将数据3C50H装入AX寄存器。(不得使用立即数)
30、设BX=0FFFFH,DI=20H,DS=2000H,CL=8,(20020H)=4567H,下列各条指令分别执行后BX中的内容各为多少?
A. ROL BX,CL ;BX=______ B. MOV BX,[DI] ;BX=______ 31、DAT1 DB 1,2,3,4 DAT2 DW 3412H,5678H ┇
MOV AX,DAT1+1 ;将DAT1+1字单元内容送入AX中 MOV BL,DAT2+1 ;将DAT2+1字节单元内容送入BL中
已知上述两条MOV语句有语法错误,请根据注释字段的要求将其改正(分别用一条语句改正)。 32、DA1 DB 20H DUP(?)
DA2 DW 10H,45H,7856H
请用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。 33、用三种不同方法实现在字存储单元DB1中存储2000H。
34、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
MOV AL,[BP+20H]的物理地址是 。 MOV [BX+DI-80H],AL的物理地址是 。
MOV BL,ES:[SI+40H]的物理地址是 。 四、程序分析题 1、XOR AL,AL MOV AH,AL
12
ADD AH,9 JZ NEXT
XCHG AH,AL JMP K1
NEXT:MOV AH,0FFH K1:??
上述程序运行后,AH= ,AL= 。 2、XOR AL,AL
INC AL NEG AL INC AL
MOV BL,7FH ADC AL,BL
上述程序段运行后,AL= ,CF= 。 3、已知 AX=1234H MOV BX,AX NEG BX ADD AX,BX
执行上述三条指令后,AX= ,BX= 。 4、BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ?
MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6 LOP:MOV AL,[SI] SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP
试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么?
(2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。 5、BUFF DB ?ABD $ QC% $ A??CYZ?
CONT EQU $ - BUFF ? CLD
LEA DI,BUFF MOV CX,CONT MOV AL,?$? XOR DX,DX
NEXT:REPNZ SCASB
CMP CX,0 JZ K1 INC DX JMP NEXT K1: ?
上述程序段运行后,DX中的值表示的意义是什么?
6、DA1 DW 1F28H DA2 DB ? ┇
XOR BL,BL MOV AX, DA1 LOP:AND AX,AX JZ KK
SHL AX,1 JNC LOP ADD BL,1 JMP LOP
KK:MOV DA2,BL
试问:A.程序段执行后, DA2字节单元内容是什么?
B.在程序段功能不变情况下,是否可用SHR指令代替SHL指令? 7、DA1 DB 87H DA2 DB ┇
MOV AH,0 MOV AL,DA1 MOV CL,4
13
SHR AL,CL MOV DL,10 MUL DL
MOV BL,DA1 AND BL,0FH ADD AL,BL MOV DA2,AL
试回答:A.程序段执行后,(DA2)=______;
B.在程序段功能不变的情况下,是否可以用指令SAR替代指令SHR?
8、MOV AL,BL NOT AL
XOR AL,BL OR BL,AL
程序段执行后,AL=______,BL=______。 9、STC
MOV CX,0403H MOV AX,0A433H SAR AX,CL XCHG CH,CL SHL AX,CL
程序段执行后,AX=______,CF=______。 10、BYTE1 DB XX ;任意数 BYATE2 EQU 0FEH ┇
MOV DL,BYTE1 OR DL,BYTE2
程序段执行后,DL=______或______。
11、DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4 ┇
XOR AX,AX XOR CL,CL XOR BX,BX
LOP:TEST DA_B[BX],01H JE NEXT
ADD AL,DA_B[BX] INC AH
NEXT:INC BX INC CL
CMP CL,10 JNE LOP
上述程序段运行结束后,AH=______,AL=______。如果把“JE NEXT指令改为“JNE NEXT“指令,那么AH=______,AL=______。
12、VAR_B DB 10 DUP(3,5,7,9) ┇
LEA BX,VAR_B MOV CX,10 XOR AX,AX
LOP:ADD AL,[BX] CMP AL,10 JB NEXT INC AH
SUB AL,10 NEXT:INC BX LOOP LOP
上述程序段运行结束后,AH=______,AL=______。
13、已知AX=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX
执行上述指令序列后,AX=___________________,CF=___________________。 14、设寄存器AL,BL,CL中内容均为76H, XOR AL,0FH AND BL,0FH OR CL,0FH
执行上述指令序列后,AL=___________________。
BL=___________________,CL=___________________。 15、已知AX=0A33AH,DX=0F0F0H
14
AND AH,DL XOR AL,DH NEG AH NOT AL
执行上述指令序列后,AH=___________________,AL=___________________。 16、DATA SEGMENT
S9 DB0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇
LEA SI,S9
LEA,DI,S9+1 MOV CX,5 LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么? 17、 .MODE SMALL
.DATA
DATA1 DW 2000H DATA2 DW 3000H .CODE .STARTUP LEA SI,DATA1
MOV DI,OFFSET DATA2 MOV BX,[SI] MOV CX,[DI] MOV [SI],CX MOV [DI],BX .EXIT END
上述程序段运行后,(DATA1)=_________________,(DATA2)=_________________。 18、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇
SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA4
上述程序段运行后,CX=___________________,DX=___________________。 19、现有如下程序段:
DATA SEGMENT
ORG 0020H
DA1 DW 12H,23H DA2 DB 11H,21H DA3 EQU 1234H DA4 EQU $-DA2 DA5 DB 31H,32H
DATA ENDS
请回答:(1)该程序段已占有的存储字节数是多少?
(2)符号名DA4的值是多少?符号名DA5的值是多少? 20、执行下列程序段后,回答问题。 ORG 1221H
NUM DW 12H
?
MOV AX,NUM
MOV BX,OFFSET NUM
MOV CL,BYTE PTR NUM+1 MOV CH,TYPE NUM HLT
15