汇编语言程序设计模拟题 下载本文

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

17

请写出用一条指令实现取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 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)=?

18

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的物理地址是 。

19

MOV BL,ES:[SI+40H]的物理地址是 。 四、程序分析题

1、XOR AL,AL MOV AH,AL 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

20