当前位置:文档之家› 汇编语言复习题

汇编语言复习题

汇编语言复习题
汇编语言复习题

汇编语言程序设计复习题

一、单项选择题

1.假设(AL)=0FFH 依次执行ADD AL,0FH指令后,标志位ZF和SF的状态分别为(A )

A. 0和0

B. 0和1

C. 1和0

D. 1和1

2.假设V AR为变量,指令MOV BX,V AR 的寻址方式是( A )

A.直接寻址B.间接寻址

C.立即寻址D.存储器寻址

3.下列指令中,不影响标志位的是

( C )

A.SUB BX,BX B.ROR AL,1 C.JNC Lable D.AND AL,CL

4.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=0AAH,试问执行指令MOV BX,

[DI]后,(BX)= ( C )

A.0100H B.55AAH

C.AA55H D.4100H

5.执行下列哪一条指令后,就能用条件转移指令判断AL和BL寄存器中的最高位是否相同?(D )

A. TEST AL BL

B. CMP AL BL

C. AND AL BL

D. XOR AL BL

6.堆栈中当前出栈的存储单元地址是

(A )

A. SS*10H+SP

B. SS*10H+BP

C. SS*10+SP

D. SS*10+BP

7.已知V AR DW l,2,$+2,5,6若汇编时V AR分配的偏移地址是0010H,则汇编后

0014H单元的内容是( D )

A.6H B.14H C.5H D.16H

8.循环控制指令REPNZ继续执行循环的条件是(B )

A. CX≠0且ZF=1

B. CX≠0且ZF=0

C. CX≠0或ZF=1

D. CX≠0或ZF=0

9.设NUM=11011011B,指令―MOV AL,NUM SHL 3‖执行后AL中的值是(B )A.11011011000B B.11011000B

C.00011011B

D.00011011011B

10.下面XCHG指令语句中,语法正确的是(B)

A. XCHG AX,DS

B. XCHG BL,[BX]

C. XCHG AL,OFH

D. XCHG [SI],[DI]

11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是( A )

A。目的操作数最高位是0 B.目的操作数最高位是1

C.目的操作数为任何情况D.无论什么情况都不可能相同

12.设AL=04H,BL=0F8H,执行IMUL BL 指令后,结果是(D)

A.AX=0032H B.AX=00EOH C.AX=03EOH D.AX=OFFEOH

13.指令的操作数中,允许出现表达式,例如BUFl与BUF2均为变量名,下面指令中语法正确的是( D )

A.MOV AX,BUF1*BUF2

B.MOV AX,BUF1/BUF2

C.MOV AX,BUF1+ES:BUF2

D.MOV AX,BUF2-BUF1

14.下面指令中,操作数的寻址方式为寄存

器间接寻址的指令是( C)

A.INC WORD PTR [BX+S1]

B.INC CX,[SI+COUNT]

C.NEG BYTE PTR [BX]

D.ADD AX,B

15.NUM EQU 80H

DA DB 34H

AND DA,NUM

上述语句执行后,DA中的内容是

( D )

A,0B4H B;80H C,34H

D.0

16.在同一程序段中,定义有下面的伪指令,

使用正确的是(B )

A.PORT1 EQUAL PORTl EQU

2000H B.PORT2 = 3500H AND 0FFH

C.PORT3 DD ?ABCD‘

D.PORT4 PROC ...RET ENDP

17.语句DA1 DB 2 DUP(3,5,7)汇编后,

该语句可等同于的语句是(D )

A.DA1 DB 3,5,7 B.DA1

DB 2,3,5,7

C.DA1 DB 3,5,7,2 D.DA1

DB 3,5,7,3,5,7

18.MOV AL,80H

MOV CL,2

SAR AL,CL

上述指令执行后,结果是(D )

A.AL=40H B.AL=20H

C.AL=0COH D.AL=0E0H

19.下面是实现将AL内容加1的压缩型BCD

码加法程序段,其中错误的指令序列是(A )

A.INC AL B.ADD AL,1

C.ADD AL,1 D.STC

DAA DAA AAA

DAA

20.DABY1 DB 12H,34H,56H,78H

DB $-DABY1

DABY2 DB 8 DUP(1,2,3)

...

MOV DL,SIZE DABY2

ADD DL,DABYl+2

上述指令序列执行后,DL的内容是

( C )

A.3CH B.80H C.5EH

D.1AH

21、下列寄存器组中在存储器操作数寻址时可

用于提供偏移地址的是(D)

A、AX,BX,CX,DX

B、SP,BP,SI,DI

C、CS,ES,DS,SS

D、BX,BP,SI,DI

22、执行NEG指令时,要设置标志位CF。设

置CF的正确说法是(C)

A、对正数求补时,CF置0

C、对全0数据求补时,CF置0

23、要使BL中的低四位变反,高四位不变,

应执行指令(D)

A、NOT BL

C、AND BL,0FH

24、在8086/8088的立即数寻址方式中,对寄

存器的使用下列说法正确的是(D)

A、使用AX,BX,CX,DX

C、使用任一个通用寄存器

25、MOV AL,-1

NEG AL

XOR AL,65

上述指令执行后,AL的值是(B)

A、01H

C、61H

26、在查错程序DEBUG中,为查看或修改内

存单元的内容,使用的命令是(A)

A、D或E

C、R 或E

27、指令MOV CL,55H XOR 0F0H执行后

CL中的值是(C)

A、05H

C、0A5H

28、对CS段寄存器赋段地址的方法是(B)

A、MOV AX,CODE

MOV CS,AX

C、END 起始地址

29、X DW 1234H,0A9BH

Y DB 7EH,8DH

MOV BH,TYPE X

MOV BL,TYPE Y

执行后BX的内容是(D )

A、0102H

C、1234H

30、条件转移指令JBE产生转移的条件是(A)

A、CF=1 OR ZF=1

C、CF=1 OR ZF=0

31、某存储单元的段地址是0AB90H,偏移地

址是1234H,该存储单元的物理地址是(B)

A、0BDC4H

C、0AD134H

32、设DF=1,每次执行CMPSW指令时,SI

和DI均要分别(B)

A、减1

C、加1

33、设(AL)=07H,要使(AL)=-07H应执

行的指令是(C)

A、OR AL,80H

C、NEG AL

34、下列指令执行时操作数在数据段的是(D)

A、MOV AX,32768H

C、NEG BX

35、设SP=4AH,执行段内返回指令RET 4后,

SP的值是(A)

A、50H

1

2

C 、4CH

D 、44H 36、设CF=1,实现AL 内容乘2的指令是 ( D ) A 、RCL AL ,1 B 、SAR AL ,1

C 、ROR AL ,1

D 、SHL AL ,1

37、下面语句中能和指令MOV AX ,NOT 000FH 等效的是(C )

A 、MOV AX ,0FFFFH

B 、MOV AX ,0FH

C 、MOV AX ,0FFF0H

D 、MOV AX ,0F0FFH 38、与LEA BX ,BUF 指令完全等效的指令是 ( D) A 、MOV BX ,BUF B 、LDS BX ,BUF C 、MOV BX ,WOKD PTR BUF D 、MOV BX ,OFFSET BUF 39、下面有语法错误的指令是(B ) A 、XCHG AX ,[BX] B 、XCHG AX ,CS C 、XCHG AX ,SI D 、XCHG AX ,BP

40、XOR AX , 0426H JZ DONE 上述程序段产生分支的条件是(A )

A 、执行前AX=0426H

B 、执行前AX≠0426H

C 、执行前AX=全0

D 、执行前AX=全1

41.执行NEG 指令时,要设置标志位CF 。设

置CF 的正确说法是 (C )

A .对正数求补时,CF 置0

B .对负数求补时,CF 置0

C .对全0数据求补时,CF 置0

D .对非零

数据求补时,CF 置0

42.设AX=1000H

NEG AX

NOT AX 执行上述指令后,正确的结果是

( )。

A .AX=1001H

B .AX=0FFFH

C .AX=1000H

D .AX=0111H 43.在8086/8088的立即数寻址方式中,对寄存器的使用下列说法正确的是 (D )

A .使用AX ,BX ,CX ,DX

B .使用SI ,DI ,BP ,SP

C .使用任一个通用寄存器

D .不使用任何寄存器

44.指令的操作数中,允许出现表达式,例如BUFl 与BUF2均为变量名,下面指令中语

法正确的是

(D )

A .MOV AX ,BUF1*BUF2

B .MOV AX ,BUF1/BUF2

C .MOV AX ,BUF1+ES :BUF2

D .MOV AX ,BUF2-BUF1

45.下列寄存器中属于通用寄存器的是

( C )

A .CS

B .DS

C .SP

D .SS

46.8086CPU 中,一个段最大可定义的字节

数为 (C )。

A .61K

B .32K

C .64K

D .1M

47.对CS 段寄存器赋段地址的方法是

(B )

A .MOV AX ,CODE

B .ASSUME CS :CODE MOV CS ,AX

C .EN

D 起始地址 D .MOV CS ,2050H

48.下列4个数为有符号数,最大的数是 (D ) A .327H

B .8365H

C.9564H

D .5342H

49.条件转移指令JBE 产生转移的条件是

(A ) A .CF=1 OR ZF=1 B .CF=0 OR ZF=1

C .CF=1 OR ZF=0

D .CF=0 OR ZF=0

50.存储单元的物理地址是12340H ,偏移地

址是0200H ,逻辑地址是 ( B )。

A .2140H

B .1214H

C .1034H

D . 10340H

51.设AL=04H ,BL=0F8H ,执行IMUL BL 指

令后,结果是 (D )

A .AX=0032H

B .AX=00E0H

C .AX=03E0H

D .AX=0FFE0H 52.下列寄存器组中在存储器操作数寻址时可

用于提供偏移地址的是 (D )

A .AX ,BX ,CX ,DX

B .SP ,BP ,SI ,DI

C .CS ,ES ,DS ,SS

D .BX ,BP ,SI ,DI

53.下面指令中,操作数的寻址方式为寄存器

间接寻址的指令是 (C)

A .INC WORD PTR [BX+S1]

B .IN

C CX ,[SI+COUNT]

C .NEG BYTE PTR [BX]

D .ADD

AX ,B

54.要使BL 中的低四位变反,高四位不变,

应执行指令 (D ) A .NOT BL B .OR BL ,0FH C .AND BL ,0FH

D .XOR BL ,0FH 55.执行如下程序,(BX )的值是( C )。 MOV AX ,0

MOV BX ,1

MOV CX ,100 A :ADD AX ,BX

INC BX

LOOP A

HLT A .99 B .100 C .101 D .102

56.下面XCHG 指令语句中,语法正确的是 (B ) A .XCHG AX ,DS B .XCHG BL ,[BX] C .XCHG AL ,OFH D .XCHG [SI],[DI] 57. 8086 8位I/O 端口地址寻址范围是 ( A ) A .64K B .32K C .16K D .1M 58.指令MOV CL ,55H XOR 0F0H 执行后CL 中的值是 (C ) A .05H B .

C .0A5H

D .

59.下列指令中,不影响标志位的是

(C )

A .SU

B BX ,BX B .ROR AL ,1

C .JNC Lable

D .AND AL ,CL

60.下列4个数为有符号数,最大的数是

(A )

A .5342H

B .8365H

二、填空题

1.实模式方式下内存物理地址与逻辑地址的

关系式是(物理地址(PA )=段寄存器(SR )

*10H (16)+偏移地址(EA ))

2.标志寄存器中决定字符串处理方向的标志

是(DF )

3.调试程序DEBUG 下的命令U 与G 分别

表示(U 是反汇编命令)、(G 是连续执行命令)

4.软中断指令INT 21H 执行,若AH=9时

则完成的功能为(9号功能调用完成显示字符

串)

5.指令MOV AX ,23D5H 的寻址方式分别

是(立即寻址)

6.伪指令DAT DB 12 DUP (3 DUP (?),

0)占用了(48字节)字节单元。

7.标志寄存器中决定运算结果溢出的标志是

(OF )

8.调试程序DEBUG 下的命令R 与D 分别

表示(R 命令为显示寄存器内容)、(D 命令显示内存单元内容) 9.软中断指令INT 21H 执行,若AH=10时则

完成的功能为(键盘输入一字符串,存入DX

指示的内存单元中)

10.指令ADD BX ,[DI]的寻址方式是(间接寻址)

11.DW ?AB‘将依次在内存中从低字节到高字节存入数据BA_。

12.隐含指示堆栈段中某个数据偏移地址的寄存器是_BP 、指示栈顶地址的寄存器是_SP 。 13.比较两个字符串,找出它们不匹配的位置,在CMPSB 指令前应使用的重复前缀指令_REPE 。

14.在串操作指令中,使地址自动减量的指令是_STD 。

15.BUF DW 4,6,$+2,若汇编时BUF 分配的

偏移地址是0042H ,则汇编后BUF 数组中第三

个字的值是__ _0048H 。

16.在汇编源程序时,语句INC [BX]出现语法错

误,这时在语句的操作数项中应添加的操作符

是_

WORD PTR 。

17、8086/8088存贮器地址分段时,每个段起始

地址的特征是段首地址能被16整除。

18、实现宏定义的一组伪操作是 MACRO --

ENDM 。

19、假设执行前AX=7862H,指令XOR AX,AX执行后AX中的值是_AX=0__。

20、ARRAY DB 0,2 DUP(1,2),0,3汇编时生成的数据依次是_0,1,2,1,2,0,3_。

21、在存取一个存储器操作数时,段地址必须由__DS___提供。

22、已知DS=29A0H,某数据的物理地址是

2A400H,则当DS=6700H时,该数据的物理地址是_67A00H_。

23.伪指令DAT DB 12 DUP(3 DUP(?),0)占用了(48字节)字节单元。

24.标志寄存器中决定运算结果溢出的标志是(OF)

25.检查两个无符号数的关系,若要实现AL>=BL 时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是(JNB LOP1 )。26.指令ADD BX,[DI]的寻址方式是(间接寻址)

27.假设执行前AX=7862H,指令XOR AX,AX执行后AX中的值是(0 )

28.IN和OUT指令直接寻址方式中,端口地址PORT是一个(8位立即数)。

29.隐含指示堆栈段中某个数据偏移地址的寄存器是(BP )、指示栈顶地址的寄存器是(SP )。

30.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序的优势是(占内存空间大,但速度快)。

三、简答题

1.假设V AR1和V AR2为字变量,LAB为程序中的一个标号,试找出下列指令的错误之处。

(1)ADD A VR1,A VR2答:(1)应有一个操作数为寄存器;

(2)JMP NEAR LAB (2)少了PTR

2.假设(BX)=11100011B,变量V ALUE的值为01111001B,确定下列各条指令单独执行后的结果。

(1)XOR BX,V ALUE 答:

(1)10011010;

(2)OR BX,V ALUE

(2)11111011;

(3)AND BX,0 (3)0 3.下列各数均为用十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的数时,它们所表示的十进制数是什么?

(1) 5D (2) 62

(3) 0C3

答:(1)93 (2)98 (3)-60 4.如果要检查BX寄存器中的第13位是否为1,应该用什么指令?

答:TEST BX,2000H JNZ YES 5.编写指令将附加段中的一个字节变量COUNT送给AL寄存器

答:MOV BX,OFFSET COUNT

MOV AL,ES:[BX]

6. 有两个16位字1EE5H和2A3CH分别存

放在80x86微机的存储器的000B0H和000B3H

单元中,请用图表示出它们在存储器里的存放

情况。

答:存储器里的存放情况如图所示。

7、设有数据定义如下:

ARRAY DW 1000H,2000H,3000H,4000H,

5000H

BUF DW ?

要求完成:(1)用一条指令完成将ARRAY的

偏移地址送BX;

答:LEA BX,ARRAY

(2)用一条指令完成将ARRAY的第一字节单

元内容送AL;

答:MOV AL,ARRAY

8、两个同符号的有符号数相减时,会发生溢

出吗?为什么?

答:不会,两个同符号的数相减只能更小

9、下列语句是否有语法错误,若有,指出

是哪一条及是什么错误。

(1)MOV CL, AX 答:类型不匹配

(2)CMP [SI],[DI] 答:源、目的操作数不

能同时为变量。

10、设BX=0FFFFH,DI=20H,DS=2000H,

CL=8,(20020H)=4567H,下列各条指令分别

执行后BX中的内容各为多少?

(1)ROL BX,CL;答:BX=0FFFFH _

(2)MOV BX,[DI];答:BX=4567H_

11、简述DOS系统功能调用方法,写出在屏幕

上显示数字8的指令语句。

答:用INT 21H 指令完成调用。显示8

的调用如下:

MOV DL,?8‘

MOV AH,2

INT 21H

12、定义数据段DATAS,数据段中的数据按

下列要求依次存储:

(1) 变量BUF,大小为25个字节,初值为0

答:BUF DB 25 DUP(0)

(2) 变量ARRAY,类型为字,初值为12H,

56H,78H,0AH

答:ARRAY DW 12H,56H,78H,0AH

(3) 变量MSG存储字符串'yes'

答:MSG DB ?yes‘

13、假设DS=2000H,BX=0100H,(20100H)=30H,

(20101H)=10H

问:(1) 执行MOV DX,[BX] 答:

DX=_1030H

执行LEA DX,[BX] 答:DX=_0100H

(2) 简述两条指令区别

答:MOV DX,[BX]取BX 指示单元的内容,

LEA DX,[BX]取BX 的内容。

14、如果要检查BX寄存器中的第13位是否

为1,应该用什么指令?

答:1.TEST BX,2000H JNZ YES

15、ADD 2[BX],AX,执行前:(AX)=40,

(BX)=100H,DS:(102H=50。

问源、目的操作数的寻址方式和运算结果。

答:源操作数为寄存器寻址方式,目的操

作数采用的是变址寻址方式。(102H)=90

16、写出执行以下计算的指令序列,其中X、

Y、Z、R、W均为存放16位带符号数单元的

地址。

(1) Z←W+(Z-X)

(2) Z←(W*X)/(Y+6),R←余数

答:

(1) MOV AX, Z

SUB AX, X

ADD AX, W

MOV Z, AX

17、写出执行以下计算的指令序列,其中X、

Y、Z、R、W均为存放16位带符号数单元的

地址。

(1) Z←W-(X+6)-(R+9)

(2) Z←((W-X)/5*Y)*2

答:

(1) MOV BX, X

ADD BX, 6

MOV CX, R

ADD CR, 9

MOV AX, W

SUB AX, BX

SUB AX, CX

MOV Z, AX

18、ADD AX,4[BX+SI]。执行前:(AX)=35,

(BX)=100H,(SI)=20H,(124H)=43。问源、目

的操作数的寻址方式和运算结果。

答:1. 源操作数为基址加变址寻址方

式,目的操作数采用寄存器寻址方式。(AX)=78

19、两个同符号的有符号数相减时,会发生溢

出吗?为什么?

答:不会,两个同符号的数相减只能更小。

20、简述DOS系统功能调用方法,写出在屏

幕上显示数字8的指令语句。

答:用INT 21H 指令完成调用。显示8

的调用如下:

MOV DL,?8‘

3

MOV AH,2

INT 21H

21、判断下列指令是否正确,如果有错误,说明原因。

(1)MOV CS,AX 答:×,代码段CS不能由用户来修改。

(2)SUB AX,[DI+SI] 答:×,SI和DI不能同时出现在同一条指令中

(3)MOV [DX],AX 答:×,DX不能为寄存器间接寻址

(4)LEA BX,P 答:√,正确22.请设置一个数据DATA段,按照如下定义变量:

(1) MY1B为字符串变量:‖Personal Computer‖

(2) MY2B为用十进制数表示的字节变量:63 答:DATA SEGMENT

MY1B D B ‖Personal Computer‖

MY2B D B 63

DATA ENDS

23.汇编语言程序上机有哪4个步骤?分别利用什么程序完成、产生什么输出文件?

答:⒈编辑文本编辑程序汇编语言源程序.ASM

⒉汇编汇编程序目标文件.OBJ

⒊连接连接程序可执行文件.EXE

⒋调试调试程序

24.说明CF和OF标志的差异。

答:进位标志CF表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志OF 表示有符号数运算结果是否超出范围,运算结果已经不正确.

25.对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDB DB ?

TABLEA DW 20 DUP (?)

TABLEB DB ?ABCD‘

(1) MOV AX, TYPE FLDB

(2) MOV CX, LENGTH TABLEA

(3) MOV CX, LENGTH TABLEB

答:(1) (AX)=0001H

(2) (CX)=0014H

(3) (CX)=0001H

26.条件转移指令JZ xxxx的含义是什么? 答: 判断ZF标志,若为零则转移到xxxx标号的语句去执行;否则继续。

27.写出几种使AL置0的指令。

答:MOV AL,0

XOR AL,AL

AND AL,0

SUB AL,AL

28.汇编语言上机需要那几步?

答:1)编辑:执行EDIT.EXE产生源文件,如:文件名.ASM

2)汇编:执行MASM.EXE产生目标文件,如:文件名.OBJ

3)连接:执行LINK.EXE产生可执行文件,如:文件名.EXE

4)运行、调试:执行DEBUG.EXE进入调试状态

29.状态标志寄存器除了OF、PF外还有那几个?

答:还有CF、ZF、AF、SF

30. 现有程序段如下:

MOV CX,100

LEA BX,BUF

MOV DX,0

L1:MOV AL,[BX]

CMP AL,10

JL L2

INC DX

L2:INC BX

LOOP L1

请回答:(1)该程序段完成的功能是什么?

(2)如果将JL改为JG,该程序段完

成的功能又是什么?

答:(1)统计BUF中大于等于10的数据个数。

(2)统计BUF中小于等于10的数据个数。

四、程序分析题

1.现有如下程序段:

ADR1 DB ?A11BCDErgfe54S5ff43'

JB NEXT

N = $-ADR1

CMP AL,39H

...

JA NEXT

XOR DX,DX

INC DX

MOV CX,N

NEXT:INC BX

LEA BX,ADR1

LOOP DON

DON: MOV AL,[BX]

HLT

CMP AL,30H

请回答:(1)该程序完成的功能是什么?1.

答:(1)统计数字字符的个数。

(2)程序执行后DX寄存器中存

放的内容是什么?

答:(2)(DX)=0007H

2.分析下面的程序段:

BEG:MOV AH,1

CMP AL,'A'

INT 21H

JB NEXT

CALL SUB1

CMP AL,'Z'

JC BEG

JA NEXT

ADD AL,20H

CLC

MOV DL,AL

RET

MOV AH,2

NEXT:STC

INT 21H

RET

...

SUB1 ENDP

SUB1 PROC

请回答:(1)该程序完成的功能是什么?

答:(1) 把从键盘输入的大写字母转换为小写

字母,并显示输出,其他字符全部舍弃。

(2)由DL寄存器输出显示的内容是什么?

答:(2)转换成小写字母的ASCII值

3.分析程序,回答问题:

BEGIN:LEA BX,BUFFER

INC BX

XOR AL,AL DEC

CL

MOV CL,64H JNZ

REPEAT

REPEAT:MOV BYTE PTR[BX],AL

HLT

问:(1)该程序的功能是什么?

答:从数据区BUFFER为首地址开始,连续将

100个字节单元清零。

(2)程序执行后BUFFER中存放的内容是什么?

4.回答以下程序段的功能:

DATX1 DB 300 DUP(?)

MOV DI,0

DATX2 DB l00 DUP(?)

NEXT:MOV AL,DATX1[BX][SI]

...

MOV DATX2[DI],AL

MOV CX,100

INC SI

MOV BX,200

INC DI

MOV SI,0 LOOP

NEXT

请问:(1)该程序完成的功能是什么?

答:数据块搬家程序

(2)程序执行后,指出DATX2单元中的内容是

什么

答:将DATX1中的后100个数据传送到DATX2

5.现有程序段如下:

LEA BX,ADDR

MOV AX,0

MOV CX,99

JMP EXIT

MOV AX,[BX]

NEXT:MOV CL,100

DON:ADD BX,2

DIV CL

ADD AX,[BX] EXIT:

MOV RETT,AX

LOOP DON

HLT

JNO NEXT

请问:(1)该程序完成的功能是什么?

答:求100个数据之和,并判断是否有溢出。

(2)程序执行后,指出RETT字单

元中的内容是什么?

答:无溢出,则将计算结果送入RETT单元;

有溢出,则将溢出标志送入RETT单元。

6.现有程序段如下:

DSEG

SEGMENT

...

TABLE DB 01H,02H,04H,08H,

LEA BX,TABLE

10H,20H,40H,80H

MOV AL,NUM

NUM DB 3

4

XLAT

REST DB ?

MOV REST,AL

DSEG ENDS

HLT

请回答:(1)该程序的功能是什么?

答:以NUM单元中给定的数据,使用查表方法,找出TABLE表中的对应数值。

(2)程序执行后REST字节单元中的内容是什么?

答:[REST]=08H

7、已知AX=0FF70H,BX=0030H,

OR BX,0FF40H

SBB AX,BX

上述二条指令执行后,AX=_0,

BX=__0FF70H___。

8、A1 DB 65H

A2 DB ?

A3 DB ?

MOV AL,A1

MOV CL,4

SHR AL,CL

ADD AL,30H

MOV A2,AL

MOV AL,A1

AND AL,0FH

OR AL,30H

MOV A3,AL

上述程序段执行后(A2)=_36H_,(A3)=

_35H__。

9、分析下列程序段完成的功能。

MOV BX,AX

XOR BX,0423H

JZ NEXT

OR BX,1

NEXT:……

若上述程序段执行时,指令JZ产生了分支转移,说明AX=_0423H _,执行后BX=0__。

10、已知AX=5678H

MOV BX,AX

NEG BX

ADC AX,BX

上述程序段运行后,AX=_0001H _,

BX=__0A988H _。

五、编制程序题

1.已知变量DATA1中连续开始存放3个字节数据,编写程序完成从大到小排序。

(要求写出完整程序)。

答:DATA SEGMENT

DATA1 DB 25H,76H,23H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DX,AX MOV AL,DATA1

MOV BL,DATA+1

MOV CL,DATA+2

CMP AL,BL

JAE L1

XCHG AL,BL

L1:CMP AL,CL

JAE L2

XCHG AL,CL

L2:CMP BL,CL

JAE L3

XCHG BL,CL

L3:MOV DATA,AL

MOV DATA+1,BL

MOV DATA+2,CL

MOV AH,4CH

INT 21H

CODE ENDS

END START

2.编写完成将AL中的无符号二进制数转换为

十进制数并存入BUF开始的单元中的子程序。

(要求写出子程序说明文件)。

答:;子程序名字:BCD

;功能描述:二进制数转换为十进制数

;入口参数:AL中为待转换的二进制数

;出口参数:变量BUF中为转换后的十进制数

BCD PROC

PUSH CX

PUCH DX

MOV CX,3

LEA SI,BUF

MOV DL,10

L:CBW

DIV DL

MOV [SI],AH

INC SI

LOOP L

POP DX

POP CX

RET

BCD ENDP

3.键盘输入一字符串(小于10个字符)存入

变量BUF中。编写程序完成统计其中的'D'字符

的个数,并显示输出。(要求写出完整程序)

答:DATAS SEGMENT

BUF DB 9,0,10 DUP(0)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:MOV AX,DATAS

MOV DS,AX

LEA DX,BUF ;10号功能调用

输入字符串

MOV AH,0AH

INT 21H

MOV CH,0H ;

MOV CL,BUF+1 ;CX为字符个数

LEA SI,,BUF+2

MOV BL,0H

L1:MOV AL,[SI]

CMP AL,?D‘

JNE L2

INC BL ;计数

L2:INC SI

LOOP L1

MOV DL,BL

ADD DL,30H ;显示字符个数值

MOV AH,02H

INT 21H

MOV AH,4CH

INT 21H

CODES ENDS

END START

4.试编写一程序段,要求把BL中的数除以

CL中的数,并把其商乘以2,最后的结果存入

DX寄存器中。

答:MOV AL,BL

MOV AH,0 ;

假定为无符号数,否则用CBW指令即可

DIV CL

MOV AH,0

SHL AX,1

MOV DX,AX

5、试编写完整程序,要求比较二个字符串

STRING1和STRING2所含字符是否相同,若

相同,则显示―MATCH‖;不相同,则显示

―NOMATCH‖

答:DATA SEGMENT

STRING1 DB ?abc‘

N1 EQU $-STRING1

STRING2 DB ?abc‘

N2 EQU $-STRING2

STR1 DB ?MATCH‘,13,10,‘$‘

STR2 DB ?NOMATCH‘,13,10,‘$‘

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:

DATA

START:MOV AX,,DATA

MOV DS,AX

MOV ES,AX

MOV AL,N1

CMP AL,N2

JNE L1

MOV SI,OFFSET STRING1

MOV DI,OFFSET STRING2

MOV CX,N1

CLD

REPE CMPSB

JNE L1

LEA DX,STR1

MOV AH,9

INT 21H

JMP EXIT

L1:LEA DX,STR2

MOV AH,9

INT 21H

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

6、设X为字节变量,试编写完整程序,若X

为十进制数的ASCII值,则将F置1;若X为

大写字母的ASCII值,则将F置2;若X为小

写字母的ASCII值,则将F置3;若X为其它

字符的ASCII值,则将F置4;

5

答:DATA SEGMENT

X DB ?

F DB 1

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DS,AX

MOV AL ,X

CMP AL,‘0‘

JB L3

CMP AL ,‘9‘

JA L1

MOV F,1

JMP EXIT

LI:CMP AL,?A‘

JB L3

CMP AL,,‘Z‘

JA L2

MOV F,2

JMP EXIT

L2:CMP AL,‘a‘

JB L3

CMP AL,‘z‘

JA L3

MOV F,3

JMP EXIT

L3:MOV F,4

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

7、编一子程序,比较BUF1和BUF2缓冲区中

不相等的字符,并将不相等的字符显示输出

答:子程序名:COMPARE

;功能:比较两个缓冲区的字符串,不相等的字符显示输出

;入口:SI=BUF1比较字符串的首址;DI=BUF2比较字符串的首址;CX=字符的个数

;出口:输出不相等字符

COMPARE PROC

L:MOV AL,[SI]

CMP AL,[DI]

JE L1

MOV DL,[SI]

MOV AH,2 评分:

(共10 分,下述每项2分)

INT 21H

1)子程序结构正确

MOV DL,[DI]

2)比较方法正确。

MOV AH,2

3)显示方法正确

INT 21H

4)有说明文件

L1:INC SI

5) 设置指针正确

INC DI

LOOP L

RET

COMPARE ENDP

9、试编一程序,求3个带符号字数据X、Y、Z中的最大值,并将最大值存入MAX字单元中

答:程序:

DATA SEGMENT

X DB?2‘

Y DB?8‘

Z DB ?5‘

MAX DB ?

DATA ENDS

CODE S EGMENT

ASSUME DS:DATA,SS:STACK,

CS:CODE

START:MOV AX,DATA

MOV DS,AX

MOV AX,X

CMP AX,Y

JG L1

MOV AX,Y

CMP AX,Z

JG EXIT

L2:MOV AX,Z

JMP EXIT

L1:CMP AX,Z

JLE L2

EXIT:MOV MAX,AX

MOV DL,MAX

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODE E NDS

END START

例题

10.一字节二进制数以十六进制数形式显示

分析:①先将变量A中的字节数分解为两个4

位数,分别加上30H变为准ASCII码。

②再分别判断每个准ASCII码是否大于?9‘,若

是则加上07H;否则不加。这样就变为相应16

进制的ASCII码。

③分别显示高位和低位ASCII码。

程序:┋

A D

B 01011111B ; 定义1个字

节数(5FH)

MOV DL,A

MOV CL,4

SHR DL,CL ;右移4

位取高4位值

ADD DL,30H ;加

30H得准ASCII码

CMP DL,?9?;与‘9‘比较

JBE NEXT1 ;小于?9‘

转移,不加07H

ADD DL,07H ;大于?9‘多加

上07H

NEXT1:MOV AH,2 ;显示

ASCII码

INT 21H

MOV DL,A

AND DL,0FH ;处理

得低4位

ADD DL,30H ;加

30H得准ASCII码

CMP DL,?9?;与‘9‘比较

JBE NEXT2 ; 小于

?9‘转移,不加07H

ADD DL,07H ;大于?9‘多加

上07H

NEXT2:MOV AH,2 ;显示ASCII码

INT 21H

MOV AH,4CH

INT 21H

11.从键盘输入一系列以$为结束符的字符串,

然后对其中的非数字字符计数,并显示出计数

结果。

答:程序段如下:

DSEG SEGMENT

BUFF DB 50 DUP (‘’)

COUNT DW 0

DSEG ENDS

BEGIN: LEA BX, BUFF

MOV COUNT, 0

INPUT: MOV AH, 01

;从键盘输入一个字符的功能调用

INT 21H

MOV [BX], AL

INC BX

CMP AL, ‘$’;是$结

束符吗?

JNZ INPUT ;

不是,继续输入

LEA BX, BUFF ;对非

数字字符进行计数

NEXT: MOV CL, [BX]

INC BX

CMP CL, ‘$’;是$结

束符,则转去显示

JZ DISP

CMP CL, 30H ;小于0

是非数字字符

JB NEXT

CMP CL, 39H ;大于9

是非数字字符

JA NEXT

INC COUNT ;

个数+1

JMP NEXT

DISP: ……

12.求: 1 X≥0,Y≥0

Z = -1 X<0,Y<0

0 X,Y异号

先判断X、Y是否异号,若同号再判X是否大

于零(或小于零)的方法,来确定Z的取值。

X DB 23

Y DB –10

Z DB 0 ;设初值Z=0

MOV AL,X

XOR AL,Y ;X与Y异或

JS EXIT ;若SF=1(异号)转

6

MOV Z,-1 ;同号,先置Z=-1

CMP X,0

JL EXIT ;负号转

MOV Z,1 ;正号时Z=1

EXIT:MOV AH,4CH

INT 21H

13.在一个字符串中查找一特定字符,找到时,

将该字符所在单元地址存入内存单元中;否则存入0。

分析:1)采用搜索指令SCASB

2)DI内容为字符的偏移地址

3)注意ES的设置(目的串段地址必

须用ES指示)

程序:

CHAR EQU?$‘;查找的特定

字符

STRING DB?THIS A EXAMPLE$‘

COUNT EQU $—STRING ;

字符个数

CHRADDR DW 0 ;存

放特定字符地址

MOV DI,SEG STRING

MOV ES,DI

MOV DI,OFFSET STRING ;DI存串的首址

MOV AL,CHAR

;被查询的字符送AL中

MOV CX,COUNT

;CX计数字符个数

CLD

;串搜索方向为正方向

REPNE SCASB ;CX≠0做AL-[DI],

DI+1→DI ;CX-1≠0且ZF=0重复(不等重复)

JE YES

;找到转移

MOV DI,1

;未找到,使DI=0

YES:DEC DI ;退

到查询的字符所在地址

MOV CHRADDR,DI

14.试编写一程序求出双字长数的绝对值。双字

长数在A和A+2单元中,结果存放在B和B+2单元中。

答:程序段如下:

MOV AX, A

MOV DX, A+2

CMP DX, 0

JNS ZHENSHU ;不是负数则转走

NEG DX

NEG AX

SBB DX, 0

ZHENSHU: MOV B, AX

MOV B+2, DX

INT 20H 15.在BUF为首址的字存贮区存放N个有符号

二进制数,将大于等于0的数依次送BUF1存

贮区,小于0的数送BUF2存贮区,计数个数

分别送A,B字变量

分析:1)初值BX←BUF首址X;SI←PLUS

首址X≥0;DI←MINUS首址X<0;CX←计数

个数N

2)指针SI,DI,BX的调整

3)计数值的增加(A,B加1)

程序:

BUF DW 23,123,-12,-210,45,0,

90,-453

N EQU ($-BUF)/2

PLUS DW N DUP(0);大于等于0

的数存贮区

MINUS DW N DUP(0);小于0的数

存贮区

A DW 0 ;存≥0的数个

B DW 0 ;存<0的数

个数

LEA BX,BUF

LEA SI,PLUS

LEA DI,MINUS

MOV CX,N

L0:MOV AX,[BX]

CMP AX,0

JGE L1 ;非负转

MOV [DI],AX ;负数→BUF2

ADD DI,2

INC B ;个数计数

JMP NEXT

L1:MOV [SI],AX ;非负

数→BUF1

ADD SI,2

INC A ;个数计数

NEXT:ADD BX,2 ;修改地址

LOOP L0 ;循环控制

MOV AH,4CH

INC 21H

16.用二进制显示从键盘输入的一个字符的

ASCII码

mov ah,1 ;从键盘输入一个字

int 21h

mov bl,al ;BL←AL=字符的

ASCII码;DOS功能会改变AL内容,故字符

ASCII码存入BL

mov ah,2

mov dl,':' ;显示一个分号,用于

分隔

int 21h

mov cx,8 ;CX←8(循环次数)

again: shl bl,1 ;左移进CF,从高位开始显

mov dl,0 ;MOV指令不改变

CF

adc dl,30h ;DL←0+30H+

CF ;CF若是0,则DL←'0';若是1,则DL

←'1'

mov ah,2

int 21h ;显示

loop again ;CX减1,如果CX

未减至0,则循环

17.把字变量X中的16位二进制用16进制数形

式显示出来

分析:1)16位二进制可分为4位16进制数(4

组,每组4位)

2)将4位二进制数→ASCII码以便显示

若4位数为0~9,则将其加30H→数字ASCII

若4位数为A~F,则将其加37H→数字

ASCII码

3)用每次左移4位的方法将相应数位移到低4

位,共移动4次

程序:

X DW 4F59H ;待显示数据

MOV CH,4 ;循环次数初值,处

理次数4

MOV BX,X ;初值

L:MOV CL,4

ROL BX,CL ;循环左移4

MOV DL,BL ;低4位→DL,

COPY

AND DL,0FH

CMP DL,10

JB NEXT ;DL中为0~9转

ADD DL,7 ;DL中为A~

F多加7

NEXT:ADD DL,30H ;变为ASCII

MOV AH,2 ;显示

INT 21H

DEC CH ;修改循环次数

JNZ L ;未完转移

MOV AH,4CH

INT 21H

18.试编写一个汇编语言程序,求出首地址为

DATA的100D字数组中的最小偶数,并把它

存放在AX中。

答:程序段如下:

BEGIN: MOV BX, 0

MOV CX, 100

COMPARE: MOV AX, DATA[BX] ;取数

组的第一个偶数

ADD BX, 2

TEST AX, 01H ;是偶数吗?

7

LOOPNZ COMPARE ;不是,比较下一个数

JNZ STOP ;没有偶数,退出

JCXZ STOP ;最后一个数是偶数,即为最小偶数,退出

COMPARE1: MOV DX, DATA[BX] ;取数组的下一个偶数

ADD BX, 2

TEST DX, 01H ;是偶数吗?

JNZ NEXT ;不是,比较

下一个数

CMP AX, DX ;(AX)<(DX)

吗?

JLE NEXT

MOV AX, DX ;(AX)<(DX),则置换(AX)为最小偶数

NEXT: LOOP COMPARE1 STOP: RET

19.有一数组A,第一单元为字符个数,第二以后各单元存放数组元素。查找A中与X字变量相等的第一个元素,若找到,则删除它;否

则数据不变。

分析:1)若找到,应将其后的元素前移(当前CX-1值为其后的个数)

2)若查找的元素是最后一个,则不用移动(即CX=1时为最后)

3)若未找到元素,表示查找结束(即CX=0)4)前移一位(即[SI+2]→[SI],循环CX-1次)程序:┋

N A1 A2 CX CX-1 ……

An

A DW 12,32,-2,56,-220 (10)

22

SI SI+2 CX=1

X DW 56

MOV AX,X ;搜索值

MOV CX,A ;元素个数

LEA SI,A+2 ;首址

L:CMP AX,[SI] ;查找X值

JZ YES ;若找到转移

ADD SI,2 ;否则转L继续查找,LOOP L

JMP EXIT ;没有找到转结束(CX=0)YES:DEC A ;找到,将个数减1

DEC CX ;CX-1待移动的个数

JZ EXIT ;CX=0则不用移动

L1:MOV BX,[SI+2] ;取下一元素

MOV [SI],BX ;前移一位

ADD SI,2 ;修改指针

LOOP L1 ;继续移位

EXIT:MOV AH,4CH

INT 21H

┋20.现有一个以$结尾的字符串,要求剔除其中的空格

.data

String db ‘Let us have a try !‘,‘$‘

.code

.startup

mov si,offset string

outlp: cmp byte ptr [si],‘$‘;外循环,先判断后循环

jz done ;为$结束

cmp byte ptr [si],‘‘;检测是否是空格

jnz next ;不是空格继续循环

mov di,si ;是空格,进入剔除空格分支

;该分支是循环程序段

inlp: inc di

mov al,[di] ;前移一个位置

mov [di-1],al

cmp byte ptr [di],‘$‘

;内循环,先循环后判断

jnz inlp

jmp outlp

next: inc si ;继续对后续字符进行处理

jmp outlp

done: .exit 0 ;结束

8

汇编语言基础练习题目

、填空 1. 在8086/8088的计算机中,存储单元的20位物理地址由两部分组成,即16 位的 段地址 和16位的 偏移地址,物理地址=段地址X 10H+偏移量。 2. 段的起始地址必须是某小段的首地址,它能被 10H 整除。 3. 已知01020H 字单元的内容为6A58H 请分别写出它的两个字节单元的地址和 内容: (01020H =58H, ( 01021H =6AH 4. 指令执行后,若标志寄存器的ZF=0,则表示结果不为0;若SF=0,则表示结 果的符号是正号,即结果为正数。 5. 控制器从存储器取出一条指令后,指令指针寄存器IP 的内容是 将要执行的下 一条指令开始的偏移地址。 6. 段地址和偏移地址为1000: 127B 的存储单元的物理地址是1127BH 解:由物理地址=段地址X 10H+偏移量的公式可得 物理地址=1000HX 10H+127BH=10000H+127BH=1127BH 、选择 1. 与CS 寄存器组合才能形成代码段的物理地址的寄存器是 解:16K 个字单元,即为32K 个字节单元。由于2的15次方为32K,因此至 少需要15位二进制数才能表示16K 个字单元。 3. 已知一数据段的段地址是0100H,这个段的第6个字单元的物理地址是(B ) o 解:由于一个字单元占用两个字节,第一个字单元的偏移地址为 0000H,因 此第一个字单元的物理地址为 01000H 。以后每一个字单元的地址在前一个的基 C )。 A. SP 寄存器 B. BP 寄存器 C. IP 寄存器 D. BX 寄存器 2.如果存储器分段时, 的二进制数至少是( 一个段最多允许16K 个字单元,那么表示该段内偏移地址 A )o A.15 位 位 B.16 位 C.17 位 D.18 A. 01010H B. 0100AH C.01012H D.01006H

汇编语言复习题(带答案)

汇编语言复习题(带答案) 汇编语言期末复习题 第1章:基础知识 1、在汇编语言程序的开发过程中使用宏功能的顺序是(C)。DX A、宏定义,宏调用 B、宏定义,宏展开 C、宏定义,宏调用,宏展开 D、宏定义,宏展开,宏调用 2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句 中不可省略的项是(B)。DX A、名字项 B、操作项 C、操作数项 D、注释项 3、可屏蔽中断就是它的请求是否被CPU响应要受(IF)的控制。DX 4、使用LINK连接命令,执行后可生成文件的扩展名为(EXE)。DX 5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在段中,段地址 在SS寄存器中。TK 6、注释项用于说明程序段或是一条和几条指令的功能,一般用;(或分号)表示注释 的开始。TK 7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送AH寄存器后执行INT21H。TK 8、通常主程序和子程序间参数传送的方法有三种:用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)。TK 9、CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源。TK 10、在字符串操作指令中,DS∶SI指向源串,ES∶DI指向目的串。TK 11、计算机系统通过接口与外围设备通信。TK 12、键盘I/O、显示I/O和打印I/O分别对应、和号中断。TK 13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节 为显示字符的ASCII码,第二个字节为显示字符的属性。TK 14、简述上机运行汇编语言程序的过程。JD

汇编题库重点复习题

1.已知X=76,则[X]补=_______。 A.76H B. 4CH C. 0B4H D. 0CCH 2.已知[X]补=80H,则X =_______。 A.80H B.0 C. 0FFH D. -80H 3.已知[X]补=80H,则[X]补/2=_______。 A.0CCH B.4CH C. 49H D. 31H 4.已知X=78,Y=-83,则[X+Y]补=_______。 A.0F5H B.0A1H C. 0FBH D. 65H 5.将124转换成十六进制的结果是_______。 A.7CH B.7DH C. 7EH D. 7BH 6.将93H看成一个压缩的BCD码,其结果是_______。 A.10010101 B.10010011 C. 10000011 D. 10000001 7.45转换成二进制数是_______。 A.10101101 B.00111101 C. 00101101 D. 10011101 8.6CH 转换成十进制数是_______。 A.118 B.108 C. 48 D. 68 9.将93H扩展为字的结果是_______。 A.FF93H B.0093H C. 1193H D. 1093H 10.56的压缩BCD码是_______。 A.38H B. 56H C. 0506H D. 3536H 11.ASCII中的47H表示字符的是_______。 A.“7” B. “G” C. “g” D. “E” 12.十进行数-1的8位二进制数补码是_______。 A.11111110 B. 11110000 C. 11111111 D. 10001111 13.下列为补码表示,其中真值最大的数是_______。 A.10001000 B. 11111111 C. 00000000 D. 00000001 14.十六进制数88H,可表示成下面几种形式,请找出错误的表示_______。 A.无符号十进制数136 B. 1带符号十进制数-120D C. 压缩BCD码十进制数88 D. 8位二进制数-8的补码 15.计算机对字符、符号采用统一的二进制编码。其编码采用的是_______。 A.BCD码 B. 二进制码 C. ASCII D. 十六进制码第二章 16.在微机中分析并控制指令执行的部件是_______。 A.寄存器 B. 数据寄存器 C. CPU D. EU 17.在计算机的CPU中执行算术逻辑运算的部件是_______。 A.ALU B. PC C. AL D. AR 18.执行指令PUSH CX后堆栈指针SP自动_______。 A.+2 B. +1 C. —2 D. —1 19.在标志寄存器中表示溢出的是_______。 A.AF B. CF C. OF D. SF 20.对汇编语言源程序进行翻译的是程序是_______。 A.连接程序 B. 汇编程序 C. 编译程序 D. 目标程序

最新有答案---14-15-1-汇编语言复习资料

汇编语言复习资料 第一部分选择题 第一章基础知识 1.数组array在数据段的定义如下所示,在内存空间的存储值是什么,选出正确的一 项(B ) array db 1,‘1’,0AH,‘A’,-2 A、1H 1H 0AH 0AH 82h B、1H 31H 0AH 41H FEH C、1 1 0A 0A 12h D、31H 31H 41H 41H 02h 2.debug命令中显示内存单元内容的命令是( B ) A、a B、d C、e D、r 3.debug命令中反汇编命令是(D ) A、q B、g C、t D、u 4.在DEBUG下,修改寄存器AX的命令是___B_。 A.U AX B.R AX C.R D.A AX 5.从200H开始反汇编的DEBUG命令是A____。 A.U 200 B.R 200 C.D 200 D.U 6.仅查看用户程序中数据段10号存储单元的DEBUG命令是A____。 A.D DS:A A B.D DS:A C.D DS:10 10 D.D DS:10 7.计算机编程语言的发展顺序是(A ) A、机器语言汇编语言高级语言 B、汇编语言机器语言高级语言 C、高级语言汇编语言机器语言 D、高级语言机器语言汇编语言 8.将124转换成十六进制数的结果是_A____。 A.7CH B.7DH C.7EH D.7BH 9.计算机对字符、符号采用统一的二进制编码。其编码采用的是_C_____。 A.BCD码B.二进制码C.ASCII D.十六进制码 第二章80x86计算机组织 10.对汇编语言源程序进行翻译的程序是__B___。 A.连接程序B.汇编程序C.编译程序D.目标程序 11.在汇编语言中,能够翻译成二进制代码的指令是__A__。 A.汇编指令B.伪指令C.机器指令D.宏指令

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

汇编语言期末复习模拟题库

一考试题型100分 1.数制码制10分 2.填空30分 3.判断题:10分语句正确与否错误原因 4.选择题15分 5.阅读程序15分 6.编写程序20分 二.选择题59 计算机基础 8086寄存器 寻址方式 指令功能:算术,逻辑,移位,循环 标志位:C,Z,S,O,P 堆栈,SP 汇编格式,变量,标号 程序开发:EDIT ,MASM ML,LINK,DEBUG 1、通常说计算机的内存为32M、64M或128M指的是:() A.RAM的容量 B.ROM的容量 C.RAM和ROM的容量 D.硬盘的容量 2.汇编语言的优点不包括_____。 A直接有效地控制硬件B生成的代码序列短小 C运行速度快 D 编程容易 3 十六进制数88H,可表示成下面几种形式,请找出错误的表示()。 A.无符号十进制数136 B.带符号十进制数-120 C.压缩型BCD码十进制数88 D. 8位二进制数-8的补码表示 4 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( ) A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 5可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是()。 A.AX,BX,CX,DX B.DS,ES,CS,SS C.SP,BP,IP,BX D.SI,DI,BP,BX 6.当运行结果为0时,ZF=__________。 A 0 B 1 C 任意 D 不影响 7某次求和结果最高位为1,则SF=__________。 A 0 B 1 C 任意D不影响 8设DS=5788H,偏移地址为94H,该字节的物理地址_____________。 A 57974H B 5883H C 57914H D 58ECH 9. “MOV AX,[BP+DI]”指令从__________段取出数据送AX。 A CS B SS C DS D ES 10.下面不能用于寄存器寻址的寄存器有() A. CS B. AX C IP D SI E. CL F. SP 11存储器寻址方式在指令中给出操作数在内存中的地址,该地址是() A 逻辑地址 B.有效地址C偏移地址 D.物理地址 E.段地址 12.堆栈的操作原则是_____________。 A先进先出B后进先出C后进后出D循环 13 “MOV SP,3210H”和“PUSH AX”指令执行后,SP寄存器值是____。 A 3211H B 320EH C 320FH D 3212H

2011汇编语言选择题及填空题复习部分已填写答案的解读

汇编语言复习题 一、选择题 1.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( C A. C+D=B B. A+D=B C. B=D D. A>C>D 2.标志寄存器中属于控制标志位的是(B A.DF,OF,SF B.DF,IF,TF C.OF,CF,PF D.AF,OF,SF 3.8088/8086存储器分段,每个段不超过( A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.设AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是( A.DEC AL

B.SBB AL,0 C.SUB AL,1 D.SUB AL,1 AAS DAS AAS DAS 5.若AX= - 15要得到AX=15应执行的指令是( A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7. MOV AL,79 ADD AL,0B1H 上面指令执行后,设置的标志位 CF和OF的值是( A.CF=0,OF=1 B.CF=1,OF=1

C.CF=0,OF=1 D.CF=1,OF=0 8.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是( A.DIV BX B.CWD C.XOR DX,DX D.CBW IDIV BX DIV BX IDIV BX 9.下列指令中操作数在代码段中的是( A.MOV AL,42H B.ADD AL,BL C.SUB [BX],DI D.INC [DI] 10.用REPE SCASB指令对字符串进行扫描,如CX>0时,扫描结束,那么表示( A.在字符串中遇上第一个AL中指定的字符 B.在字符串中有一个AL中指定的字符 C.在字符串中有一个不是AL中指定的字符 D.在字符串中遇上第一个不是AL中指令的字符

汇编语言考试复习试题及答案

《汇编语言》考试复习题及答案 一、单项选择题(共20小题,每小题1分,共20分)在每题列出的四个备选项中只有一个是符合要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址 C.物理地址D.逻辑地址 2.某存储单元的物理地址是12345H,可以作为它的段地址有()A.2345H B.12345H C.12340H D.1234H 3.执行后使BX=0的同时也使CF=0,OF=0的指令是()A.XORBX,BX B.ORBX,BX C.ANDBX,BX D.CMPBX,BX 4.循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是()A.CX≠0且ZF=1B.CX≠0且ZF=0 C.CX≠0或ZF=1D.CX≠0或ZF=0 5.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是() A.DAA校正指令的功能已自动加在AH中 B.进位值在AF中,校正后根据AF内容再加在AH中 C.进位值在CF中,校正后根据CF内容再加在AH中

D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中6.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是()A.指令XORAX,AX执行后,AX内容不变,但设置了标志位 B.指令ORDX,1000H执行后,将DX最高位置1,其余各位置0 C.指令ANDAX,OFH执行后,分离出AL低四位 D.NOTAX,执行后,将AX清0 7.在执行下列指令时,需要使用段寄存器DS的指令是()A.STOSW B.ADDAL,CL C.NEGBX D.INCDA[BX] 8.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是() A.ADDBH,01H B.ORBH,01H C.XORBH,01H D.TESTBH,01H 9.完成对CL寄存器的内容乘以4的正确操作是() A.ROLCL,1B.MUL4 ROLCL,1 C.SHLCL,1D.MOVCL,2 SHLCL,1SHLCL,CL 10.下面各传送指令中,正确的是() A.MOV[DI],[SI]B.MOV[DX+DI],AL C.MOVWORDPTR[BX],0100H D.MOV AL,BX 11.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()

微机原理与汇编语言复习题及参考标准答案

微机原理与汇编语言复习题及参考答案 ——CSDN下载频道提供,请尊重原创 一、选择题: 1. 设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为( ) A.51H B. A3H C.47H D. 0C5H 2. 下述指令的执行结果是( ) MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20HC.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的内容乘以4的正确操作是() A.ROL CL,1B.MUL 4C.SHL CL,1 D.MOV CL,2 ROL CL,1SHLCL,1SHL CL,CL 4. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指( )A.ADDBH,01H B.OR BH,01H C.XORBH,01HD.TESTBH,01H 5.假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= () A.0E903H B.2003H C.0DBBHD. 2008H 6.下面的数据传送指令中,错误的操作是() A.MOV SS:[BX+DI],1000H B. MOV DX,1000H C.MOVWORD PTR[BX],1000H D.MOV DS,2000H 7. CPU要访问的某一存储单元的实际地址称( ) A.段地址B.偏移地址C.物理地址D.逻辑地址 8.某存储单元的物理地址是12345H,可以作为它的段地址有( ) A.2345HB.12345H C.12340HD.1234H 9. 计算机能直接识别的的语言( ) A.汇编语言 B.机器语言 C.高级语言D.低级语言 10.下列指令中操作数在代码段中的是() A.MOV AL,25HB.ADD AH,BLC.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为() A.直接、立即、间接 B.直接、间接、立即 C.立即、直接、间接 D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALLAX后,栈顶的物理地址是()A.2010211 B.2010111 C.200FFHD.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOVAX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1C.1,0D.1,1 14.JMP BX的目标地址偏移量是(D)。 A.SI的内容 B.SI所指向的内存字单元之内容 C.IP+SI的内容D.IP+[SI] 15.指令MOVAX,10[BX]的源操作数的寻址方式是() A.基址寻址 B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI)D.寄存器相对寻址

汇编语言期末复习题库

一、填空题 1.中央处理器包括运算器、控制器、寄存器组。 2.物理地址是指实际的20 位主存单元地址,每个存储单元对应唯一 的物理地址。 3.用二进制代码书写指令和程序的语言,称为机器语言。 4.计算机中的指令由操作码和操作数两部分组成。 5.把A和B两个寄存器的内容进行异或运算,若运算结果是0 ,那么 A、B寄存器的内容必定相同。 6.AL,BL中存放着压缩的BCD数,(AL)=18H,(BL)=47H,执行如下 两条指令ADD AL,BL 和DAA后,(AL)=65H 。 7.当指令“SUB AX,BX”执行后,CF=1,说明最高有效位有借位; 对有符号数,说明操作结果溢出。 8.FLAG状态标志寄存器中,AF为辅助进位标志,CF为进位标志, SF为符号标志,ZF为零标志,OF为溢出标志,PF为奇 偶性标志。 9.指出下列指令源操作数的寻址方式: MOV AX,ARRAY[SI] 变址寻址 MOV AX,ES:[BX] 寄存器间接寻址 MOV AX,[200H] 直接寻址 MOV AX,[BX+DI] 基址变址寻址 MOV AX,BX 寄存器寻址 MOV AX,1200H 立即数寻址

MOV AX,20[BX+SI]基址变址寻址 MOV AX,[DI+20] 变址寻址 10.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H, (20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21023H)=65H,下列指令执行后填入AX寄存器的内容: (1)MOV AX,1200H;(AX)= 1200H (2)MOV AX,BX;(AX)=0100H (3)MOV AX,[1200H];(AX)= 4C2AH (4)MOV AX,[BX];(AX)= 3412H (5)MOV AX,1100[BX];(AX)= 4C2AH (6)MOV AX,[BX][SI];(AX)= 7856H (7)MOV AX,1100[BX][SI];(AX)= 65B7H 11.已知‘A’的ASCII是41H,那么‘E’的ASCII是45H 。 12.Ends 是段定义结束伪指令,与Segment配套使用。 13.逻辑地址由段基值和偏移量组成。将逻辑地址转换为物理地址的公 式是段基值*16+偏移量。其中的段基值是由段寄存器存储。 14.一个有16个字的数据区,它的起始地址为70A0:0100H,那么该数据 区的最后一个字单元的物理地址为70B1E H。 15.DEBUG命令中,显示内存命令 D ,显示寄存器命令R,汇编命令 A ,执行命令G 。

微机原理与汇编语言复习题及参考答案

中南大学网络教育课程考试复习题及参考答案 微型机原理与汇编语言 一、单项选择题: 1.设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A.51H B.A3H C.47H D.0C5H 2.下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3.完成对CL寄存器的内容乘以4的正确操作是() A.ROL CL,1 B.MUL4 C.SHL CL,1 D.MOV CL,2 ROL CL,1SHL CL,1SHL CL,CL 4.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 5.假设(AL)=37H,(BL)=95H,执行指令IMUL BL后(AX)=() A.0E903H B.2003H C.0DBBH D.2008H 6.下面的数据传送指令中,错误的操作是() A.MOV SS:[BX+DI],1000H B.MOV DX,1000H C.MOV WORD PTR[BX],1000H D.MOV DS,2000H 7.CPU要访问的某一存储单元的实际地址称() A.段地址 B.偏移地址 C.物理地址 D.逻辑地址 8.某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9.计算机能直接识别的的语言() A.汇编语言 B.机器语言 C.高级语言 D.低级语言 10.下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为() A.直接、立即、间接 B.直接、间接、立即 C.立即、直接、间接 D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是() A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14.JMP BX的目标地址偏移量是() A.SI的内容 B.SI所指向的内存字单元之内容 C.IP+SI的内容 D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址 B.寄存器寻址 C.变址寻址 D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的?() A.19BH+25D B.25+AL C.108-102Q D.101B*OABH 17.用来存放即将执行的指令的偏移地址的寄存器是() A.SP B.IP C.BP D.CS 18.源变址寄存器是() A.SI B.DI C.SP D.BX

(完整版)汇编语言复习题

汇编语言程序设计复习题 一、单项选择题 1.假设(AL)=0FFH依次执行ADD AL,0FH指令后,标志位ZF和SF的状态分别为(A ) A. 0和0 B. 0和1 C. 1和0 D. 1和1 2.假设V AR为变量,指令MOV BX,V AR 的寻址方式是( A ) A.直接寻址B.间接寻址C.立即寻址D.存储器寻址 3.下列指令中,不影响标志位的是 ( C ) A.SUB BX,BX B.ROR AL,1 C.JNC Lable D.AND AL,CL 4.假定(DS)=4000H,(DI)=0100H,(40100H)=55H,(40101H)=0AAH,试问执行指令MOV BX, [DI]后,(BX)= ( C ) A.0100H B.55AAH C.AA55H D.4100H 5.执行下列哪一条指令后,就能用条件转移指令判断AL和BL寄存器中的最高位是否相同?(D ) A. TEST AL BL B. CMP AL BL C. AND AL BL D. XOR AL BL 6.堆栈中当前出栈的存储单元地址是 (A ) A. SS*10H+SP B. SS*10H+BP C. SS*10+SP D. SS*10+BP 7.已知V AR DW l,2,$+2,5,6 若汇编时V AR分配的偏移地址是0010H,则汇编后0014H单元的内容是( D ) A.6H B.14H C.5H D.16H 8.循环控制指令REPNZ继续执行循环的条件是(B ) A. CX≠0且ZF=1 B. CX≠0且ZF=0 C. CX≠0或ZF=1 D. CX≠0或ZF=0 9.设NUM=11011011B,指令“MOV AL,NUM SHL 3”执行后AL中的值是(B ) A.11011011000B B.11011000B C.00011011B D.00011011011B 10.下面XCHG指令语句中,语法正确的是(B) A. XCHG AX,DS B. XCHG BL,[BX] C. XCHG AL,OFH D. XCHG [SI],[DI] 11.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是( A ) A。目的操作数最高位是0 B.目的操作数最高位是1 C.目的操作数为任何情况D.无论什么情况都不可能相同 12.设AL=04H,BL=0F8H,执行IMUL BL 指令后,结果是(D) A.AX=0032H B.AX=00EOH C.AX=03EOH D.AX=OFFEOH 13.指令的操作数中,允许出现表达式,例如BUFl与BUF2均为变量名,下面指令中语法正确的是( D ) A.MOV AX,BUF1*BUF2 B.MOV AX,BUF1/BUF2 C.MOV AX,BUF1+ES:BUF2 D.MOV AX,BUF2-BUF1 14.下面指令中,操作数的寻址方式为寄存 器间接寻址的指令是( C) A.INC WORD PTR [BX+S1] B.INC CX,[SI+COUNT] C.NEG BYTE PTR [BX] D.ADD AX,B 15.NUM EQU 80H DA DB 34H AND DA,NUM 上述语句执行后,DA中的内容是 ( D ) A,0B4H B;80H C,34H D.0 16.在同一程序段中,定义有下面的伪指令, 使用正确的是(B ) A.PORT1 EQUAL PORTl EQU 2000H B.PORT2 = 3500H AND 0FFH C.PORT3 DD ‘ABCD’ D.PORT4 PROC ...RET ENDP 17.语句DA1 DB 2 DUP(3,5,7)汇编后, 该语句可等同于的语句是(D ) A.DA1 DB 3,5,7 B.DA1 DB 2,3,5,7 C.DA1 DB 3,5,7,2 D.DA1 DB 3,5,7,3,5,7 18.MOV AL,80H MOV CL,2 SAR AL,CL 上述指令执行后,结果是(D ) A.AL=40H B.AL=20H C.AL=0COH D.AL=0E0H 19.下面是实现将AL内容加1的压缩型BCD 码加法程序段,其中错误的指令序列是(A ) A.INC AL B.ADD AL,1 C.ADD AL,1 D.STC DAA DAA AAA DAA 20.DABY1 DB 12H,34H,56H,78H DB $-DABY1 DABY2 DB 8 DUP(1,2,3) ... MOV DL,SIZE DABY2 ADD DL,DABYl+2 上述指令序列执行后,DL的内容是 ( C ) A.3CH B.80H C.5EH D.1AH 21、下列寄存器组中在存储器操作数寻址时可 用于提供偏移地址的是(D) A、AX,BX,CX,DX B、SP,BP,SI,DI C、CS,ES,DS,SS D、BX,BP,SI,DI 22、执行NEG指令时,要设置标志位CF。设 置CF的正确说法是(C) A、对正数求补时,CF置0 C、对全0数据求补时,CF置0 23、要使BL中的低四位变反,高四位不变, 应执行指令(D) A、NOT BL C、AND BL,0FH 24、在8086/8088的立即数寻址方式中,对寄 存器的使用下列说法正确的是(D) A、使用AX,BX,CX,DX C、使用任一个通用寄存器 25、MOV AL,-1 NEG AL XOR AL,65 上述指令执行后,AL的值是(B) A、01H C、61H 26、在查错程序DEBUG中,为查看或修改内 存单元的内容,使用的命令是(A) A、D或E C、R 或E 27、指令MOV CL,55H XOR 0F0H执行后 CL中的值是(C) A、05H C、0A5H 28、对CS段寄存器赋段地址的方法是(B) A、MOV AX,CODE MOV CS,AX C、END 起始地址 29、X DW 1234H,0A9BH Y DB 7EH,8DH ┇ MOV BH,TYPE X MOV BL,TYPE Y 执行后BX的内容是(D ) A、0102H C、1234H 30、条件转移指令JBE产生转移的条件是(A) A、CF=1 OR ZF=1 C、CF=1 OR ZF=0 31、某存储单元的段地址是0AB90H,偏移地 址是1234H,该存储单元的物理地址是(B) A、0BDC4H C、0AD134H 32、设DF=1,每次执行CMPSW指令时,SI 和DI均要分别(B) A、减1 C、加1 33、设(AL)=07H,要使(AL)=-07H应执 行的指令是(C) A、OR AL,80H C、NEG AL 34、下列指令执行时操作数在数据段的是(D) A、MOV AX,32768H C、NEG BX 35、设SP=4AH,执行段内返回指令RET 4后, SP的值是(A) A、50H 1

汇编语言课后习题答案郑晓薇后的

汇编语言课后习题答案郑 晓薇后的 Modified by JEEP on December 26th, 2020.

习题一1 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=0101001 0=52H=82 4 5000020A3H,FF94H,00003456H,007FH, FFFFEC00H 6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~ +32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII 码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H 9 (1) 56+63=01110111B, CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0, SF=0,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

《汇编语言程序设计》期末复习题答案_57431457509182192

《汇编语言程序设计》复习题(答案指导/带页号)一、选择(30题) 1.下列是8位带符号二进制数的补码,其中最大的是( B )。参见P22 A、10001000 B、00000001 C、00000000 D、11111111 2.在一段汇编语言程序中多次调用另一段程序,用宏指令比用子程序实现 ( C )参见P157、158 A、占内存空间小,但速度慢 B、占内存空间相同,速度快 C、占内存空间大,但速度快 D、占内存空间相同,速度慢 3.数据定义为:EE DB 3,4 CC DW 3456H,6789H 执行指令“MOV CX,WORD PTR EE+1”后,(CX)= ( B )参见P27、63、64 A、0304H B、5604H C、3404H D、3456H 4.有如下指令序列: MOV AL,95H MOV CL,2 SAR AL,CL 上述指令序列执行后,AL的内容是( D )参见P95 A、05H B、25H C、24H D、0E5H 5.设A=18610,B=2738,C=0BB16,把这三个数看成无符号数,则它们之间的关系是( D )参见P23、15 A、A>B>C B、 A

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV? 2 ; B.DIV ? DX,2 ; C.SAR? DX,1; D.SHL? DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 1.A 2. C 3.A 4.D 5.B 6.A 7.C 8.B 9.D 10.C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

汇编复习题1

《汇编语言程序设计》复习题 一、单项选择题 1、使计算机执行某种操作的命令是( B) A.宏指令 B.指令 C.伪指令 D.语句 2、换码指令的助记符是( A) A. XCHG B. LEA C. XLAT D. MOV 3、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)。 A.AX,BX,CX,DX B.BX,BP,SI,DI C.SP,IP,BP,DX D.CS,DS,ES,SS 4、计算机能直接识别并执行的语言是( B) A.汇编语言 B.机器语言 C.高级语言 D.低级语言 5. 堆栈的工作方式是( D) A.先进先出 B.随机读写 C.只能读出,不能写入 D.后进先出 6、以下各个指令中正确的是( B )。 A. MOV CS, DX B. MOV DS, BP C. IN 20H,AL D. MOV AH, BX 8、已有汇编语句“VAR EQU 1220H”,则语句“mov AX, VAR”中源操作数的寻址方式为( B )。 A. 立即寻址 B. 直接寻址 C. 寄存器间接寻址 D. 基址寻址 9、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 A.MOV BX,VAR B.LDS BX,VAR C.LES BX,VAR D.LEA BX,VAR 10、指令INC一定不会修改的标志是( C )。 A. 溢出标志OF B. 符号标志SF C. 进位标志CF D. 奇偶标志PF 11、已知DS=2000H,ES=1000H, SI = 0800H,内存10880H开始的两个单元中存放5678H,内存20880H开始的两个单元中存放8765H,则语句“LEA BX,[SI+80H]”执行后BX的值为( C )。 A. 5678H B. 1000H C. 0880H D. 8765H 12、汇编结束语句有( C )种格式,为()。 A.1,END B.1,END 程序的启动地址标号 C.2,END和END 程序的启动地址标号D.以上都不正确 13、指令“CALL FAR PTR SUM”执行时将会向堆栈中顺次压入( B )。

汇编语言试题及答案(1)

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是() A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节

相关主题
文本预览
相关文档 最新文档