汇编试题和答案

1.设(DS) = 2000h,(ES) = 3000h,(SS) = 4000h,(BX) = 1000h,(BP) = 1000h,(Si) = 00065438。(21002h) = 5678h,(31000h) = 9abch,(31000h) = 0def0h,(41000h) = 3456h,(410008)。

MOV AX,ES:[1000H]物理地址31000H (AX)=9ABCH。

MOV AX,[BX]物理地址21000H (AX)=1234H。

MOV AX,[BP+DI]物理地址21002H (AX)=5678H。

MOV AX,[BX][SI]物理地址21001h(AX)= 7812h。

6.将正确答案填入下列节目片段的括号内。

数据段

BUF DB 12H,56H

数据结束

7.指出下列指令错误的原因,并填入括号内。

A.MOV AX,BL;源操作数和目标操作数的长度不同。

B.MOV CS,AX;CS寄存器不能用作目标操作数。

C.GAMA[BX];必须显示指示目标操作数的长度(使用修饰符,如BYTE PTR和WORD PTR)。

D.MOV ES,5600H当段寄存器用作MOV指令的目标操作数时,源操作数不能是立即数。

E.子AX,DS;段寄存器不能用作操作指令的源操作数。

8.下列语句在内存中给变量分配了多少字节?请填写括号。

VR1 DW?;2字节

VR2 DW 4 DUP(?),2;10字节

CONT EQU 10;这是一个伪指令,CONT在汇编阶段只是作为一个代表值10的标签,并不是一个变量,所以实际上并没有分配内存。

9.设BX=1200H,SI=0002H,DS=3000H,(31200H)=50H,(31201H)=02H,(31202h)。

A.DEC字节指针〔1200H〕Q: (31200)=4FH,CF = CF的初始值(DEC指令不影响CF标志)。

B.SAR字节PTR [SI+1200H],1;问:(31202H)=FBH,ZF=0。

C.MOV AX,字PTR〔BX+SI〕;Q: AX=90F7H,SF = SF的原始值(MOV指令不影响标志位)。

2.为每组写一个程序说明,这样:(6分)

A.bx寄存器的低四位是1或BX,000FH或BL,0FH。

B. AX寄存器的低四位清0和AX,0FFF0H或AL,0F0H。

c .使用测试指令测试DL寄存器的第3位和第6位是否同时为0。测试D1,01001000b(如果结果ZF=0意味着两者都是0)。

3.在一个子程序开始时保护AX、BX、CX和DX的信息,在子程序结束时恢复这四个寄存器信息。比如:(4分)

;保护现场

推斧

推BX

推CX

推送DX

;还原现场

还原场景时尽量写指令序列。

流行DX

波普·CX

波普·BX

爆破筒

1.对于下面的数据定义,每条MOV指令单独执行后,寄存器的内容是什么?(5分)

FLDB DB?

TAB1 DW 20 DUP(?)

TAB2 DB 'ABCD '

(一)MOV AX,FLDB AX=1型

(B) MOV AX,型号TAB1 AX=2

(C) MOV CX,长度TAB1 CX=20

(D) MOV DX,尺寸TAB1 DX=40

(E) MOV CX,长度TAB2 CX=1

执行以下程序段后,AL的内容是什么?(5分)

MOV艾尔,10

加铝,铝

SHL AL,1

MOV·布莱

SHL AL,1

添加AL,BL

结果AL=0C0H

下列程序段的作用是什么?(5分)

SAL AX,1

RCL DX,1

5.已知节目片段:

字符串数据库' ABCDEFGHIJ '

MOV啊,01;从键盘输入字符1~9。

INT 21H

还有AL,0FH

十二月

异或啊,啊

MOV BX,偏移字符串

加上BX,斧头

MOV·DL,[BX]

MOV啊,02H显示输出

INT 21H

┇:如果有什么不明白的,可以百度一下:编程回忆录。他们现在在录制这方面的教程,都是从零开始,由浅入深。