当前位置:首页 > 汇编模拟题及答案
VECT1 DW 200H VECT2 DW VECT1
执行MOV AX,VECT1 AX=__2000H_____ MOV BX,VECT2 BX=_120H______。 三、简答题
1、在指令系统中,段内、段间返回均为RET指令。试回答:
(1)执行段内返回RET指令时,执行的操作是:(IP)←((SP),(SP)+1)
(2)执行段间返回RET指令时,执行的操作是:(IP)←((SP),(SP)+1)
(CS)←((SP)+2,(SP)+3)
2、用两种办法,分别只用一条指令实现将DA1数据区中数据个数送入CX。 DA1 DB 20H DUP(?) DA2 DW 10H,45H,7856H
(1)MOV CX,LENGTH DAT1(2)MOV CX,DAT2-DAT1
3、已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
MOV AL,[BP+20H]的物理地址是:12488H MOV[BX+DI-80H],AL的物理地址是:232D7H MOV BL,ES:[SI+40H]的物理地址是:31040H 4、请指出下列指令错误原因: A.OR AX,[CX]
B.ADD[SI],[BX][DI] C.JMP BYTE PTR LOOPS D.SAR AX,4 E.RCL DX
A.CX不能做间址寄存器
B.源操作数和目的操作数不能同时为存储器操作数 C.标号没有BYTE属性
D.循环次数大于1时应先至于CL中 E.没有指定移位次数
5、DS=2000H,AX=2000H,BX=5030H,(25030H)=03H,(25031H)=05H,那么执行下列语句,A.MOV AX,BX AX=AX=5030H;B.MOV AX,[BX]AX=AX=0503H
21
AX=5030H AX=0503H
6、数据定义如下 X1 DB 10H,100,-1 X2 DW 10H,100,-1 X3 DD?
COUNT EQU X3-X1
变量COUNT的值是9,其表示的意义是计算分配给以上变量的存储单元的个数。
7、A DW 1234H B DW 5678H ┇ PUSH A PUSH B POP A POP B
试回答:上述程序段执行后(A)=A=5678H;(B)=B=1234H 。
8、设某数据段: 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的偏移地址是:(20H) (2)COUNT的值是:(0AH)
(3)DA2+5字节单元的内容是:(‘U’) 9、下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?)
22
┇
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
把DAT1中的后十个元素放到DAT2中
10、下列语句在存储器中分别为变量数据区分配多少个字节单元? (1)VAR3 DD 10
(2)VAR4 DW 4 DUP(?),2
(1)为VAR3分配4个字节单元; (2)为VAR4分配10个字节单元。
11、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?
(1)JMP BX IP=____IP=_1256H________________ (2)JMP TABLE[BX]IP=___IP=3280H_________________
12、选用NOT,AND,OR XOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。
AND AL,0FEH;OR AL,4H;XOR AL,0FAH
13、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:
PUSH AX PUSH BX PUSH CX PUSH DX : 恢复现场
试写出恢复现场时的指令序列。 POP DX
23
POP CX POP BX POP AX
14、完成下列操作,选用什么指令:
(1)将AX的内容,减去0520H,和上次运算的借位; (2)将变量名TABL的段地址送AX;
(1)SBB AX,0520H (2)MOV AX,SEG TABL 15、D1 DB 20H DUP(?) D2 DW D1
请写出用一条指令实现取D1的偏移地址送给SI中的三种方法。 ①LEA SI,D1 ②MOV SI,OFFSET D1 ③MOV SI,D2
16、在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。已知(DS)=2150H,(CS)=2640H,(SS)=2250H,SP=100H,问题:
(1)数据段起始地址是多少?
(2)计算数据段中最多可以存放多少个字节数据?(要有具体计算式) (3)代码段最多可以存放多少个字节程序代码?说明理由。
(1)21500H(2)22500H-21500H=1000H(3)64K因为分段要求最大为64K 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=__100H_____
MOV CX,VRA-BUF CX=____22H___(用十六进制数表示)。 18、分别说明下列两组指令中两条指令操作的相同点和不同点 (1)SUB AX,BX CMP AX,BX (2)AND CX,DX TEST CX,DX (1)相同点:都是做减法
24
共分享92篇相关文档