文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言复习题_2

汇编语言复习题_2

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

汇编语言程序设计

一、单项选择题(每小题2分,共20分)

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

A.0和0

B.0和1

C.1和0

D.1和1

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

A.直接寻址B.间接寻址C.立即寻址D.存储器寻址

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

A.SUB BX,BX B.ROR AL,1C.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.已知VAR DW l,2,$+2,5,6若汇编时VAR分配的偏移地址是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 SHL3”执行后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。目的操作数最高位是0B.目的操作数最高位是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*BUF2B.MOV AX,BUF1/BUF2

C.MOV AX,BUF1+ES:BUF2D.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 EQU80H

DA DB34H

AND DA,NUM

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

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

16.在同一程序段中,定义有下面的伪指令,使用正确的是(B)

A.PORT1EQUAL PORTl EQU2000H B.PORT2=3500H AND0FFH

C.PORT3DD‘ABCD’D.PORT4PROC...RET ENDP

17.语句DA1DB2DUP(3,5,7)汇编后,该语句可等同于的语句是(D)

A.DA1DB3,5,7B.DA1DB2,3,5,7

C.DA1DB3,5,7,2D.DA1DB3,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,1C.ADD AL,1D.STC

DAA DAA AAA DAA

20.DABY1DB12H,34H,56H,78H

DB$-DABY1

DABY2DB8DUP(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

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

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

D、对非零数据求补时,CF置0

23、要使BL中的低四位变反,高四位不变,应执行指令(D)

A、NOT BL

B、OR BL,0FH

C、AND BL,0FH

D、XOR BL,0FH

24、在8086/8088的立即数寻址方式中,对寄存器的使用下列说法正确的是(D)

A、使用AX,BX,CX,DX

B、使用SI,DI,BP,SP

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

D、不使用任何寄存器

25、MOV AL,-1

NEG AL

XOR AL,65

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

A、01H

B、40H

C、61H

D、64H

26、在查错程序DEBUG中,为查看或修改内存单元的内容,使用的命令是(A)

A、D或E

B、D或R

C、R或E

D、D或U

27、指令MOV CL,55H XOR0F0H执行后CL中的值是(C)

A、05H

B、50H

C、0A5H

D、0F5H

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

A、MOV AX,CODE

B、ASSUME CS:CODE

MOV CS,AX

C、END起始地址

D、MOV CS,2050H

29、X DW1234H,0A9BH

Y DB7EH,8DH

MOV BH,TYPE X

MOV BL,TYPE Y

执行后BX的内容是(D)

A、0102H

B、0101H

C、1234H

D、0201H

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

A、CF=1OR ZF=1

B、CF=0OR ZF=1

C、CF=1OR ZF=0

D、CF=0OR ZF=0

31、某存储单元的段地址是0AB90H,偏移地址是1234H,该存储单元的物理地址是(B)

A、0BDC4H

B、0ACB34H

C、0AD134H

D、1CED0H

32、设DF=1,每次执行CMPSW指令时,SI和DI均要分别(B)

A、减1

B、减2

C、加1

D、加2

33、设(AL)=07H,要使(AL)=-07H应执行的指令是(C)

A、OR AL,80H

B、NOT AL

C、NEG AL

D、ADD AL,80H

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

A、MOV AX,32768H

B、ADD AL,AH

C、NEG BX

D、INC[DI]

35、设SP=4AH,执行段内返回指令RET4后,SP的值是(A)

A、50H

B、48H

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,NOT000FH等效的是(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置0B.对负数求补时,CF置0

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

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

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

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

43.在8086/8088的立即数寻址方式中,对寄存器的使用下列说法正确的是(D)A.使用AX,BX,CX,DX B.使用SI,DI,BP,SP

C.使用任一个通用寄存器D.不使用任何寄存器

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

(D)

A.MOV AX,BUF1*BUF2B.MOV AX,BUF1/BUF2

C.MOV AX,BUF1+ES:BUF2D.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.END起始地址D.MOV CS,2050H

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

A.327H B.8365HC.9564HD.5342H

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

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

C.CF=1OR ZF=0D.CF=0OR 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.INC 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.在同一程序段中,定义有下面的伪指令,使用正确的是(B)

A.PORT1EQU AL PORTl EQU2000H B.PORT2=3500H AND0FFH

C.PORT3DD‘ABCD’D.PORT4PROC...RET ENDP

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

A.XCHG AX,DS B.XCHG BL,[BX]

C.XCHG AL,OFH D.XCHG[SI],[DI]

57.80868位I/O端口地址寻址范围是(A)A.64K B.32K C.16K D.1M

58.指令MOV CL,55H XOR0F0H执行后CL中的值是(C)

A.05H B.50H

C.0A5H D.0F5H

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

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

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

A.5342H B.8365HC.9564HD.327H

二、填空题(每空2分,共12分)

1.实模式方式下内存物理地址与逻辑地址的关系式是(物理地址(PA)=段寄存器(SR)*10H(16)+偏移地址(EA))

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

3.调试程序DEBUG下的命令U与G分别表示(U是反汇编命令)、(G是连续执行命令)

4.软中断指令INT21H执行,若AH=9时则完成的功能为(9号功能调用完成显示字符串)

5.指令MOV AX,23D5H的寻址方式分别是(立即寻址)

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

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

8.调试程序DEBUG下的命令R与D分别表示(R命令为显示寄存器内容)、(D命令显示内存单元内容)9.软中断指令INT21H执行,若AH=10时则完成的功能为(键盘输入一字符串,存入DX指示的内存单元中)

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

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

12.隐含指示堆栈段中某个数据偏移地址的寄存器是_BP、指示栈顶地址的寄存器是_SP。

13.比较两个字符串,找出它们不匹配的位置,在CMPSB指令前应使用的重复前缀指令_REPE。

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

15.BUF DW4,6,$+2,若汇编时BUF分配的偏移地址是0042H,则汇编后BUF数组中第三个字的值是

___0048H。

16.在汇编源程序时,语句INC[BX]出现语法错误,这时在语句的操作数项中应添加的操作符是_

WORD PTR。

17、8086/8088存贮器地址分段时,每个段起始地址的特征是段首地址能被16整除。

18、执行带符号数字节相乘指令IMUL BL后,CF=1,OF=1意味着_乘积超过字节能表示的范围。

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

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

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

22、已知DS=29A0H,某数据的物理地址是2A400H,则当DS=6700H时,该数据的物理地址是_67A00H_。23.伪指令DAT DB12DUP(3DUP(?),0)占用了(48字节)字节单元。

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

25.软中断指令INT21H执行,若AH=10时则完成的功能为(键盘输入一字符串,存入DX指示的内存单元中)26.指令ADD BX,[DI]的寻址方式是(间接寻址)

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

28.DB‘ABC’将依次在内存中从低字节到高字节存入数据为(ABC)。

29.隐含指示堆栈段中某个数据偏移地址的寄存器是(BP)、指示栈顶地址的寄存器是(SP)。30.在串操作指令中,使地址自动减量的指令是(STD)。

31.8086CPU状态标志位共有几位?(6位)

三、简答题(每小题6分,共18分)

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

(1)ADD AVR1,AVR2答:(1)应有一个操作数为寄存器;

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

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

(1)XOR BX,VALUE答:(1)10011010;

(2)OR BX,VALUE(2)11111011;

(3)AND BX,0(3)0

3.循环结构程序由那几个部分组成?写出各部分的名字。

答:4部分。分别为:初始化、工作部分、修改部分、控制部分

4.如果要检查BX寄存器中的第13位是否为1,应该用什么指令?

答:TEST BX,2000H JNZ YES

5.编写指令将附加段中的一个字节变量COUNT送给AL寄存器

答:MOV BX,OFFSET COUNT MOV AL,ES:[BX]

6.主、子程序之间参数传递方法有几种,分别是什么?

答:主、子程序之间参数传递方法有4种,分别是:寄存器法、存储器单元法、地址表法、堆栈法

7、设有数据定义如下:

ARRAY DW1000H,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的指令语句。

答:用INT21H指令完成调用。显示8的调用如下:

MOV DL,‘8’

MOV AH,2

INT21H

12、定义数据段DATAS,数据段中的数据按下列要求依次存储:

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

答:BUF DB25DUP(0)

(2)变量ARRAY,类型为字,初值为12H,56H,78H,0AH

答:ARRAY DW12H,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、ADD2[BX],AX,执行前:(AX)=40,(BX)=100H,DS:(102H=50。

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

答:源操作数为寄存器寻址方式,目的操作数采用的是变址寻址方式。(102H)=90

16、主、子程序之间参数传递方法有几种,分别是什么?

答:寄存器法、存储器单元法、地址表法、堆栈法

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

(1)ADD AX,BL答:×,两数的类型不一致。

(2)MOV[BX],5答:×,目的数类型不明确

(3)MOV[DI],[SI]答:×,不允许两数都为内存数

(4)CMP5,[BX]答:×,立即数不能为目的数

18、ADD AX,4[BX+SI]。执行前:(AX)=35,(BX)=100H,(SI)=20H,(124H)=43。问源、目的操作数的寻址方式和运算结果。

答:1.源操作数为基址加变址寻址方式,目的操作数采用寄存器寻址方式。(AX)=78

19、两个同符号的有符号数相减时,会发生溢出吗?为什么?

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

20、简述DOS系统功能调用方法,写出在屏幕上显示数字8的指令语句。

答:用INT21H指令完成调用。显示8的调用如下:

MOV DL,‘8’

MOV AH,2

INT21H

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 DB”Personal Computer”

MY2B DB63

DATA ENDS

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

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

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

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

⒋调试调试程序

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

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

25.判断下列程序段执行后,满足什么条件跳转成功。

XOR AX,4723H

JNE EQUAL

答:当AX不等于4723H

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

四、程序分析题(每小题6分,共18分)

1.现有如下程序段:

ADR1DB‘A11BCDErgfe54S5ff43'JB NEXT

N=$-ADR1CMP AL,39H

...JA NEXT

XOR DX,DX INC DX

MOV CX,N NEXT:INC BX

LEA BX,ADR1LOOP DON

DON:MOV AL,[BX]HLT

CMP AL,30H

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

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

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

答:(2)(DX)=0007H

2.分析下面的程序段:

BEG:MOV AH,1CMP AL,'A'

INT21H JB NEXT

CALL SUB1CMP AL,'Z'

JC BEG JA NEXT

ADD AL,20H CLC

MOV DL,AL RET

MOV AH,2NEXT:STC

INT21H RET

...SUB1ENDP

SUB1PROC

请回答:(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中存放的内容是什么?0

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

DATX1DB300DUP(?)MOV DI,0

DATX2DB l00DUP(?)NEXT:MOV AL,DATX1[BX][SI]

...MOV DATX2[DI],AL

MOV CX,100INC SI

MOV BX,200INC DI

MOV SI,0LOOP NEXT

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

答:数据块搬家程序

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

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

5.现有程序段如下:

LEA BX,ADDR MOV AX,0

MOV CX,99JMP EXIT

MOV AX,[BX]NEXT:MOV CL,100

DON:ADD BX,2DIV CL

ADD AX,[BX]EXIT:MOV RETT,AX

LOOP DON HLT

JNO NEXT

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

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

(2)程序执行后,指出RETT字单元中的内容是什么?

答:无溢出,则将计算结果送入RETT单元;有溢出,则将溢出标志送入RETT单元。6.现有程序段如下:

DSEG SEGMENT...

TABLE DB01H,02H,04H,08H,LEA BX,TABLE

10H,20H,40H,80H MOV AL,NUM

NUM DB3XLAT

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、A1DB65H

A2DB?

A3DB?

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

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

10、已知AX=5678H

MOV BX,AX

NEG BX

ADC AX,BX

上述程序段运行后,AX=_0001H_,BX=__0A988H_。

11、MOV AH,1

INT21H;从键盘输入字符

AND AL,0FH

MOV BL,AL

MOV AH,1

INT21H;从键盘输入字符

MOV AH,0

AND AL,0FH

ADD AL,BL

PUSH AX

DAA

PUSH AX

上述程序段执行时,若第一次从键盘输入6,第二次从键盘输入7。那么:

(1)第一次AX进栈的数是000DH

(2)第二次AX进栈的数是_0013H_

12、HTOA PROC

AND AL,0FH

ADD AL,90H

DAA

ADC AL,40H

DAA

RET

HTOA ENDP

请回答:(1)若执行子程序前AL=09H,执行后AL=__39H___;

(2)若执行子程序前AL=0DH,执行后AL=__44H___。

L2:MOV AX,Z

JMP EXIT

L1:CMP AX,Z

JLE L2

EXIT:MOV MAX,AX

MOV DL,MAX

MOV AH,2

INT21H

MOV AH,4CH

INT21H

CODE ENDS

END START

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

MOV DX,1234H

MOV AX,5678H

MOV CL,04

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

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

答:功能是将DX:AX中32位数据逻辑左移4位。

2)程序执行后,指出DX单元中的内容是什么

答:DX=2345H

14、程序段如下:

MOV CX,16

MOV BX,0

MOV DX,1

LI:MOV AX,2AB0H

TEST AX,DX

JZ L2

INC BX

L2:SHR AX,1

LOOP L1

MOV MEM,BX

问:1)该程序段完成的功能。

答:程序段完成的功能:是统计AX寄存器中1的个数,结果存入BX寄存器。

2)MEM中的内容.

答:存储单元MEM中的内容为6。

五、程序填空题(每空只能填一条指令!每空3分,共12分)

1、对以ADR1为起始地址的字节存储区中存有若干个字符,统计非数字字符的个数,并将结果送到ADR2单元中。请把下面的程序补充完整。

XOR BX,BX

LEA SI,ADR1

MOV CX,NUM

XOR AX,AX

AT1:MOV AL,[SI]

CMP AL,30H

_JB AT2_

CMP AL,39H

_JA AT2_

AT2:INC BL

AT3:_INC SI_

_LOOP AT1___

MOV ADR2,BL

HTL

2、设R、S、X、Y、Z均为16位无符号数据的单元符号地址。按已给定的表达式:

Z=(X+Y)/(R-S),有程序如下,请在空格处填人合适的指令。

MOV AX,X

ADD AX,Y_

MOV CX,R

SUB CX,S

CWD(或MOV DX,0)_

DIV CX_

MOV Z,AX

MOV Z+1,DX_

HLT

3、下面程序段是判断AL和BL中第4位是否相同,如相同,则AL置全0,否则AL置全1。试在空白处

填上适当的指令。(每空只能填一条指令)

①XOR AL,BL

AND AL,10H

②JE NEXT

MOV AL,0FFH

NEXT:……

4、下面程序段完成将以BUF为首址的100个字节数据的位置颠倒过来,请在空白处各填上一条指令。

③_MOV CX,50;循环次数

LEA SI,BUF;取缓冲区首址

MOV DI,SI;设置指针DI

ADD DI,99;指向末地址

NEXT:MOV AL,[SI];取数

④XCHG AL,[DI];交换

MOV[SI],AL

INC SI;修改指针

DEC DI

LOOP NEXT;继续

5、NUM和NUM+1单元分别存有一个8位带符号数,下面程序段将两数中大者送入NUM单元,小者送

入NUM+1单元,请在方框处各填一条指令补充完整。

MOV AL,NUM

CMP AL,NUM+1

①_JGE DONE_

②_XCHG AL,NUM+1__

MOV NUM,AL

DONE:┅┅

6、下面程序段是将BUF单元的绝对值送入DAR单元,请将空白处各填上一条指令

BUF DW××××

DAR DW?

MOV AX,BUF

③_TEST AX,8000H

JZ NEXT

④_NEG AX

NEXT:MOV DAR,AX

7、编程实现把键入的一个字符,用二进制形式(0/1)显示出它的ASCII代码值

MOV AH,1;从键盘输入一个字符

INT21H

MOV BL,AL;BL←AL(字符的ASCII码)

MOV DL,‘=’;显示一个等号,用于分隔

MOV AH,2

INT21H

MOV CX,8;CX(循环次数)

AGAIN:SHL BL,1;左移进CH,从高位开始显示

MOV DL,0

ADC DL,30H

MOV AH,2;显示一位

INT21H

LOOP AGAIN;循环

六、编制程序题(每题10分,共20分)

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

(要求写出完整程序)。

答:DATA SEGMENT

DATA1DB25H,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

INT21H

CODE ENDS

END START

评分:(共10分)

1.源程序段结构2.DS的设置

3.比较指令设置4.交换指令的使用

5.程序结束设置

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

评分:共10分。

1)子程序定义正确(包括RET指令)

2)循环次数设置正确。

3)算法正确

4)指针修改正确

5)子程序说明文件

3.键盘输入一字符串(小于10个字符)存入变量BUF中。编写程序完成统计其中的'D'字符的个数,并显示输出。(要求写出完整程序)

答:DATAS SEGMENT

BUF DB9,0,10DUP(0)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:MOV AX,DATAS

MOV DS,AX

LEA DX,BUF;10号功能调用输入字符串

MOV AH,0AH

INT21H

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

INT21H

MOV AH,4CH

INT21H

CODES ENDS

END START

评分:(共10分)

1.源程序段结构2.DS的设置

3.比较指令使用4.功能调用的使用

5.程序结束设置

4.编写程序完成将变量BUF开始的单元中的两位非压缩BCD码转换为无符号二进制数并存入AL中的子程序。(要求写出子程序说明文件)

答:;子程序名字:DCB

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

;入口参数:BUF中为待转换的十进制数

;出口参数:寄存器AL中为转换后的二进制数

DCB PROC

PUSH CX

PUCH BX

MOV CX,2;循环次数

LEA SI,BUF

MOV DL,10;乘积因子

MOV AX,0;结果存放单元

L:MOV BL,[SI]

MOV BH,0

MUL DL;AL*10+BL→AL

ADD AX,BX

INC SI

LOOP L

POP BX

POP CX

RET

DCB ENDP

评分:共10分。

1)子程序定义正确(包括RET指令)

2)循环次数设置正确。

3)算法正确

4)指针修改正确

5)子程序说明文件

5、试编写完整程序,要求比较二个字符串STRING1和STRING2所含字符是否相同,若相同,则显示“MATCH”;不相同,则显示“NOMATCH”

答:DATA SEGMENT

STRING1DB‘abc’

N1EQU$-STRING1

STRING2DB‘abc’

N2EQU$-STRING2

STR1DB‘MATCH’,13,10,’$’

STR2DB‘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

INT21H

JMP EXIT

L1:LEA DX,STR2评分:(共10分,下述每项2分)

MOV AH,91)比较方法正确。

INT21H2)显示方法正确

EXIT:MOV AH,4CH3)设置指针正确

INT21H4)变量设置正确

CODE ENDS5)结构正确

END START

6、利用查表的方法,编写一个将X中的压缩BCD码转换为对应的ASCII码,依次存放在BUF缓冲区的子程序

答:TAB DB30H,31H, (39)

X DB24H

BUF DB2DUP(0)

;子程序名:BCD_ASCII

;功能:将X中的压缩BCD码对照TAB表转换相应的ASCII码存入BUF中

;入口:SI=压缩BCD数X地址

DI=结果存入的地址

BX=TAB表的地址

;出口:结果放在[DI]中

BCD_ASCII PROC评分:(共10分,下述每项2分)

PUSH CX1)子程序格式正确

MOV AL,[SI]2)转换方法正确。

MOV CL,43)转换表设置正确

SHR AL,CL4)有说明文件

XLAT5)指针设置正确

MOV[DI],AL

MOV AL,[SI]

AND AL,0FH

XLAT

MOV[DI+1],AL

POP CX

RET

BCD_ASCII ENDP

7、设X为字节变量,试编写完整程序,若X为十进制数的ASCII值,则将F置1;若X为大写字母的ASCII 值,则将F置2;若X为小写字母的ASCII值,则将F置3;若X为其它字符的ASCII值,则将F置4;答:DATA SEGMENT

X DB?

F DB1

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’评分:(共10分,下述每项2分)

JB L31)比较方法正确。

CMP AL,’z’2)比较次数正确

JA L33)设定标志位正确

MOV F,34)条件判断正确

JMP EXIT5)结构正确

L3:MOV F,4

EXIT:MOV AH,4CH

INT21H

CODE ENDS

END START

8、编一子程序,比较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分)

INT21H1)子程序结构正确

MOV DL,[DI]2)比较方法正确。

MOV AH,23)显示方法正确

INT21H4)有说明文件

L1:INC SI5)设置指针正确

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 SEGMENT

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

INT21H

MOV AH,4CH

INT21H

CODE ENDS

END START

例题

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

分析:①先将变量A中的字节数分解为两个4位数,分别加上30H变为准ASCII码。

②再分别判断每个准ASCII码是否大于‘9’,若是则加上07H;否则不加。这样就变为相应16进制的ASCII码。

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

程序:┋

A DB01011111B;定义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码

INT21H

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码

INT21H

MOV AH,4CH

INT21H

11.判断有无实根

.startup;条件是b2-4ac≥0

mov al,_b

imul al;al*al→ax

mov bx,ax;bx中为b2

mov al,_a

imul_c

mov cx,4

imul cx;ax*cx→(dx,ax)。ax中为4ac(dx无有效数据)

cmp bx,ax;b2-4ac比较二者大小

jge yes;条件满足?

mov tag,0;第一分支体:条件不满足,tag←0

jmp done;跳过第二个分支体

yes:mov tag,1;第二分支体:条件满足,tag←1

done:.exit0

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

Z=-1X<0,Y<0

0X,Y异号

方法二:先判断X、Y是否异号,若同号再判X是否大于零(或小于零)的方法,来确定Z的取值。

X DB23

Y DB–10

Z DB0;设初值Z=0

MOV AL,X

XOR AL,Y;X与Y异或

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

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

CMP X,0

JL EXIT;负号转

MOV Z,1;正号时Z=1

EXIT:MOV AH,4CH

INT21H

13.在一个字符串中查找一特定字符,找到时,将该字符所在单元地址存入内存单元中;否则存入0。

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

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

3)注意ES的设置(目的串段地址必须用ES指示)

程序:

CHAR EQU‘$’;查找的特定字符

STRING DB‘THIS A EXAMPLE$’

COUNT EQU$—STRING;字符个数

CHRADDR DW0;存放特定字符地址

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.求1+2+…+100之和

.data

Sum dw?

.code

.startup

Xor ax,ax;被加数AX清0

Mov cx,100

again:add ax,cx;从100,99,...,2,1倒序累加

loop again

mov sum,ax;将累加和送入指定单元

.exit0

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 DW23,123,-12,-210,45,0,90,-453

N EQU($-BUF)/2

PLUS DW N DUP(0);大于等于0的数存贮区

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

A DW0;存≥0的数个数

B DW0;存<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

INC21H

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

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

int21h

mov bl,al;BL←AL=字符的ASCII码;DOS功能会改变AL内容,故字符ASCII码存入BL mov ah,2

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

int21h

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

int21h;显示

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 DW4F59H;待显示数据

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;显示

INT21H

DEC CH;修改循环次数

JNZ L;未完转移

MOV AH,4CH

INT21H

位的数据,测试其低位1的位置

18.已知一个16位的数据,

.startup

mov ax,wordX;测试目标送AX

mov cx,16;循环计数器置初值

mov dl,-1;计位器置初值

again:inc dl

test ax,1

ror ax,1;循环移位指令不影响ZF

loope again;CX≠0且ZF=1(测试位为0),继续循环

je notfound

mov byteY,dl

jmp done

notfound:mov byteY,-1;ZF=1,16个位均为0

done:.exit0

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

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

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

3)若未找到元素,表示查找结束(即CX=0)

4)前移一位(即[SI+2]→[SI],循环CX-1次)

程序:┋

N A1A2CX CX-1……An

A DW12,32,-2,56,-220……,10,22

SI SI+2CX=1

X DW56

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待移动的个数

汇编语言基础练习题目

、填空 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和

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中指令的字符

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

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

《汇编语言》考试复习题及答案 一、单项选择题(共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.汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法()

汇编语言练习题

一、单项选择题(共20题) 1.对于有符号的数来说,下列哪个值最大() A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是()A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( )。 A.C+D=B B.A+D=B C.B=D D.A>C>D 4.下列四个寄存器中,可作为十六位寄存器的是( ) A.DL B.CL C.BP D.EBX 5.8088/8086存储器分段,每个段不超过() A.64K个字 B. 32K个字节 C.1兆个字节 D.64K个字节6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式() A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( )。 A..OBJ文件B..EXE文件

C..LST文件D..CRF文件 8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( )。 A. (CS)×16+(IP) B. (DS)×16+(DI) C. (SS)×16+(SP) D.(ES)×16+(SI) 9.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 10.8086/8088系统执行传送指令MOV时() A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 11.执行下列程序后,(AL)=( )H。 DATA SEGMENT TAB DB ‘0123456789’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX, DATA MOV DS, AX MOV BX, OFFSET TAB MOV AL, 04 XLAT TAB …

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

微机原理与汇编语言复习题及参考答案 ——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 。

汇编语言复习题

汇编语言复习题 第2章8086CPU寄存器的结构及使用 1.8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。其中EU的功能是控制和执行指令,主要由算术逻辑部件ALU、EU控制部件、8个16位寄存器和一个标志寄存器FLAGS组成。BIU的功能是从存储器预取指令和数据,以及所有EU需要的总线操作,实现CPU与存储器和外设间信息传递。BIU由指令队列、指令指针寄存器、段寄存器、地址加器组成。 2.Intel 8086CPU共有14个16位寄存器,它们分别是通用寄存器8个即AX、BX、CX、DX、SP、BP、SI、DI,其中能用作寄存器间接寻址的寄存有BX、BP、SI和DI,控制寄存器2个即IP、PSW,段寄存器4个即DS、SS、CS和ES它们的含义分别是: 其中在编程过程中程序的段基值由汇编程序装入的段寄存器是SS和CS ,由编程者用汇编指令将段基值装入的段寄存器是DS和ES,其具体指令是MOV AX,数据段段/附加数据段名,MOV DS/ES,AX,编程人员不能用指令去取其值或给其设置给定值的寄存器是 IP ,但是可以通过某些指令的执行而自动修改其内容,如JMP NEXT指令的功能是将目的地址的偏移量送入IP。 3.PSW是程序状态字寄存器又称为标志寄存器,用来反映微处理器在程序运行时的某些状态,其中的6个状态标志位分别是OF、SF、ZF、AF、PF和CF,反映了刚执行完算术或逻辑运算指令后的某些特征。三个控制标志位是DF即方向标志、IF即中断标志位和TF陷阱标志。如两个8位的二进制数相加其状态标志位中各标志的值是多少?10110101+10011011。 4.8086CPU数据总线16根地址总线是20根能访问的最大存储空间是1MB。 第3章存储器的分段 1.在8086CPU中存储器的编址原则是按字节编址即每一个字节单元是一个存储器地址,在源程序中用常用十六进制数或符号来表示一个存储单元的地址。任何相邻的两个字节地址可以构成一个字地址,约定用较小的那个地址来表示字地址。程序员在编程时所用的地址称为逻辑地址,CPU访问的地址称为物理地址。物理地址与逻辑地址的关系是:物理地址=段基值*16+偏移地址。如有下列存储器的结构请按要求回答问题: ① 0002H的字节地址的内容是多少? ② 0002H的字地址的内容是多少? ③若该存储地址所在的数据段的段基值是0F3BH,则逻辑地址 为0004H的物理地址是多少?该物理地址的字单元内容是多少? ④物理地址是0F3B1H的字节单元内容是多少?

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

中南大学网络教育课程考试复习题及参考答案 微型机原理与汇编语言 一、单项选择题: 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

汇编复习题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 )。

相关文档