文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言习题-测验题答案

汇编语言习题-测验题答案

汇编语言习题-测验题答案
汇编语言习题-测验题答案

汇编语言各章习题、测试题答案

习题一

1.1 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数

11010011 01110111 10000011 00101111 10101010

1.2 十六进制运算

1A52H+4438H 3967H-2D81H 37H×12H 1250H×4H

1.3 将十进制数变为8位补码并做运算(结果用二进制、十六进制、十进制表示)

29+53 73-24 -66+82 -102-15

1.4 用压缩BCD码计算(结果用二进制、BCD码、十进制表示)

29+53 73-24 66+18 132+75

1.5 符号位扩展(字节扩展为字,字扩展为双字)

20A3H 94H 3456H 7FH EC00H

1.6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。

1.7 写出下列十六进制数所能代表的数值或编码:

(1)38H (2)FFH (3)5AH (4)0DH

1.8 将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码:

(1)108 (2)46 (3)-15 (4)254

1.9 写出下列算式的8位二进制运算结果,标志位CF、SF、ZF、OF分别是什么值?

(1)56+63 (2)83-45 (3)-74+29 (4)-12-37

1.10 查表,指出ASCII码0DH、0AH、07H、1BH、20H、60H、50H、70H对应的控制字符。

测验一

单选题:

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]补=98H,则[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扩展为字的结果是

10.56的压缩BCD码是

A. 38H

B. 56H

C. 0506H

D. 3536H

11.ASCII中的47H表示的字符是

A. “7”

B. “G”

C. “g”

D. “E”

12.十进制数-128的8位二进制数的补码为

A. 11111110

B. 01111111

C. 10000000

D. 10000001

13.下列为补码表示,其中真值最大的是

A. 10001000

B.11111111

C.00000000

D.00000001

14.十六进制数88H,可表示成下面几种形式,请找出错误的表示

A. 无符号十进制数136

B. 带符号十进制数-120

C. 压缩BCD码十进制数88

D. 8位二进制数-8的补码

15.计算机对字符、符号采用统一的二进制编码。其编码采用的是

A. BCD码

B. 二进制码

C.ASCII

D. 十六进制码

第一章参考答案

习题一答案:

1.1无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,

00101111=47=2FH,10101010=170=AAH

带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,

00101111=+47=2FH,10101010= -86=AAH

1.2 5E8AH,0BE6H,3DEH,4940H

1.3 00011101+00110101=01010010=52H=82

01001001+11101000=00110001=31H=49

10111110+01010010=00010000=10H=16

10011010+11110001=10001011=8BH= -117

1.4 00101001+01010011=01111100+00000110=10000010=82H=82

01110011-00100100=01001111-00000110=01001001=49H=49

01100110+00011000=01111110+00000110=10000100=84H=84

0000000100110010+01110101=0000000110100111+00000110

=0000001000000111=0207H=207

1.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H

1.6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH

1.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码

1.8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H

(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H

(3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H

(4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H

1.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

(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0

1.10 回车、换行、响铃、ESC键、空格键、@、P、p

测验一答案:

1~5 BDACA6~10 BCBAB 11~15 BCDDC

习题二

2.1 写出冯·诺依曼计算机的基本特点。

2.2 如何解决内存速度与CPU速度不匹配问题。

2.3 计算机总线的分类与作用。

2.4 简述8086CPU寄存器的分组及各自的作用。

2.5 标志寄存器中都有哪些标志位与计算结果有关?

2.6 简述逻辑地址与物理地址的概念,两者的关系。

2.7 存储器为什么要分段?如何分段。

2.8 8086系统把存储器分为哪四种类型的段?各自的特点是什么。

2.9 8086CPU的地址线为20根,寻址空间为1MB。最少可划分为多少个逻辑段?最多呢?

2.10 在四种类型的段中通常使用哪些寄存器表示逻辑地址?

2.11 字节单元和字单元如何区分?若给出一个地址,如何知道要访问的是字节单元还是字单元?

2.12 偶地址单元和奇地址单元在保存数据上有区别吗?

2.13 有一个32K字节的存储区,首地址是3302:5AC8H,写出其首单元和末单元的物理地址。

2.14 什么是有效地址?如何获得有效地址。

2.15 存储单元地址和内容表示如下,请画出存储单元存放形式。

(1) (1280AH)=3456H (2) (20021H)=4DH (3) (33450H)=37A520D1H

2.16 根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。

(1) 2389:3DE9H (2) 1230:EC92H (3) 14D9:C202H

2.17 给出段地址和偏移地址如下,计算出对应的物理地址。

(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,

(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H

2.18 已知堆栈区大小为512字节,栈底单元的物理地址为15230H。将两个字入栈保存后,当前栈指针所指单元的物理地址是多少?堆栈区中还能保存多少个数据?

2.19 写出修改当前数据段200H开始的数据区数据的DEBUG命令。

2.20 对当前代码段从100H开始反汇编的DEBUG命令是什么?

2.21 在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令?

2.22 在DEBUG下,怎样将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'?

测验二

单选题:

1.在微机系统中分析并控制指令执行的部件是。

A. 寄存器

B. 数据寄存器

C. CPU

D. EU

2.在计算机的CPU中执行算术逻辑运算的部件是。

A. ALU

B. PC

C. AL

D. AR

3.执行指令PUCH CX后堆栈指针SP自动。

A. +2

B. +1

C. -2

D. -1

4.在标志寄存器中表示溢出的标志是。

5.对汇编语言源程序进行翻译的程序是。

A. 连接程序

B. 汇编程序

C. 编译程序

D. 目标程序

6.在汇编语言中,能够翻译成二进制代码的指令是。

A. 汇编指令

B. 伪指令

C. 机器指令

D. 宏指令

7.计算机中存储信息的基本单位是一个位。

A. 二进制

B. 八进制

C. 十进制

D. 十六进制

8.若计算机字长16位,则无符号整数的范围用十六进制表示为。

A. 8000H~FFFFH

B.0000H~7FFFH

C. 0000H~FFFFH

D. 0001H~FFFFH

9.在计算机中一个字节由位二进制数组成。

A. 2

B. 4

C. 8

D. 16

10.将高级语言程序翻译成机器语言代码的实用程序是。

A. 编译程序

B. 汇编程序

C. 解释程序

D.目标程序

11.设物理地址(10FF0H)=10H,(10FF1H)=20H,(10FF2H)=30H,从地址10FF1H中取出一个字的内容是。

A. 1020H

B.3020H

C.2030H

D.2010H

12.用指出下一条要执行的指令所在单元的偏移地址。

A.IP B.SP C.通用寄存器D.段寄存器

13.代码段寄存器是。

A.IP B. SP C. DS D. CS

14.某数据段存储单元的偏移地址为2200H~31FFH,则其存储空间大小是。

A.2K B.4K C. 8K D. 16K

15.在8086标志寄存器中,ZF=1表示。

A.结果有进位B. 结果为0

C.结果溢出 D. 结果为负

16.两个操作数运算时,下列哪种结果会发生溢出。

A.两个负数相加,结果为负

B.两个正数相加,结果为负

C.一正一负相加,结果为负

D.两个正数相加,结果为正

17.设有一个双精度数12A034B0H,将它存入双字单元12000H,那么12003H中存放的是。

A.B0H B.34H C.A0H D.12H

18.堆栈段的逻辑地址由组成。

A.DS:BX B.ES:DI C.CS:IP D.SS:SP

19.代码段某单元的逻辑地址为3458:2C92H,其物理地址为。

A.37212H B. 36FF2H C.34580H D. 32C92H

20.物理地址的计算公式是。

A.段地址×10+偏移地址 B. 偏移地址×10+段地址

C.段地址×10H+偏移地址 D. 偏移地址×10H+段地址

21.在8086系统中,数据寄存器组为。

A.SI、DI、SP、BP B. AX、BX、CX、DX

C. CS、DS、ES、SS

D. CF、SF、ZF、OF

22.在内存中,每一小段的大小为。

A.64KB B. 16KB C.64B D. 16B

23.查看用户程序中数据段10号存储单元的DEBUG命令是。

A.D DS:A A B.D DS:A C.D DS:10 10 D.D DS:10

A.U AX B.R AX C.R D.A AX

25.从200H开始反汇编的DEBUG命令是。

A.U 200 B. R200 C. D200 D.U

测验二答案:

1~5 CACCB 6~10 AACCA11~15 BADBB 16~20 BDDAC 21~25 BDABA

第二章参考答案

习题二答案:

2.9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)

2.10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP

2.11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

2.12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU 的访存次数。

2.13 首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H

2.16 (1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H

(2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元

上。

2.17 代码段CS:IP的物理地址=55A84H 堆栈段SS:SP的物理地址=4DB65H

数据段DS:BX的物理地址=17678H 附加段ES:DI的物理地址=2BA41H

2.18 当前栈指针所指单元的物理地址是1522C H。堆栈区中还能保存254个字。

2.19 执行E 200

2.20 执行U 100

2.21 执行R CX,然后输入100

2.22 执行E DS:0 …a?…b?…c?…d?

测验二答案:

1~5 CACCB 6~10 AACCA11~15 BADBB 16~20 BDDAC 21~25 BDABA

习题三

3.1 名词解释:零地址指令,一地址指令,二地址指令。

3.2 分别写出与数据有关的7种寻址方式并举例说明。

3.3 已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:

MOV AX,BX

MOV AX,1290H

MOV AX,[BX]

MOV AX,DS:[1290H]

MOV AX,[BP]

MOV [DI][BX],AX

MOV ES:[SI],AX

3.5 立即寻址方式和寄存器寻址方式的操作数有物理地址吗?

3.6 什么是段超越?段超越前缀代表什么?

3.7 请指出下列指令的错误:

MOV AX,[CX]

MOV AL,1200H

MOV AL,BX

MOV [SI][DI],AX

MOV ES:[DX],CX

MOV [AX],V ALUE

MOV COUNT,[SI]

3.8 根据题目要求,写出相应的汇编指令:

(1)把BX寄存器的值传送给AX

(2)将立即数15送入CL寄存器

(3)用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中(4)把AL中的字节写入用基址变址寻址的存储单元中

(5)用SI寄存器和位移量V ALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX。

(6)将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中

3.9 写出用下列寻址方式将存储单元X中的第3个字取出,AX与其相加再放入Y单元的指令序列。

(1)直接寻址(2)寄存器相对寻址(3)基址变址

3.10 在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段?

测验三

单选题:

1.指令MOV AX,DS:[1000H],源操作数的寻址方式是。

A.立即寻址B. 直接寻址 C. 寄存器寻址 D. 基址变址寻址

2.指令MOV AX,ES:COUNT[DI],源操作数的寻址方式是。

A.基址变址寻址 B. 立即寻址C. 寄存器相对寻址 D. 相对基址变址寻址3.指令MOV DX,COUNT[BP][DI]的执行结果是。

A.将COUNT的值传送给DX

B. 将COUNT +BP+DI的值传送给DX

C. 将数据段中有效地址为COUNT +BP+DI的存储单元的值传送给DX

D. 将堆栈段中有效地址为COUNT +BP+DI的存储单元的值传送给DX

4.若(AX)=2530H,(BX)=18E6H,MOV [BX],AL指令正确的执行结果为。

A.BX寄存器的值为2530H B. BL寄存器的值为30H

C. 18E6H单元的值为30H

D. 18E6H单元的值为2530H

5.若(DS)=1240H,(BX)=8936H,则MOV AX,[BX] 源操作数的物理地址是。

A.1AD36H B. 9B760H C.1AC36H D. 9B76H

6.若(SS)=1383H,(DS)=2378H,(SI)=492AH,则ADD AX,[SI]源操作数的物理地址是= 。

A.1815AH B. 5CADH C. 6CA2H D. 281AAH

7.若(SI)=1310H,(BX)=3213H,(DS)=3593H,则SUB DX,[BX][SI]的有效地址EA为。

A.1310H B. 3213H C. 4523H D. 7AB6H

8.指令MOV BX,MASK[BP],若MASK=3540H,(SS)=1200H,(DS)=1300H,(BP)=1160H,那么

A.4740H B. 46A0H C. 4840H D. 2460H

9.指令MOV AX,COUNT[BX]完成的操作是。

A. 从存储单元读出一个字送入AX

B. 从存储单元读出一个字节送入AX

C. 将AX中的一个字写入存储单元

D. 将AX中的一个字节写入存储单元

10.指令MOV DX,DELTA[BX][SI]的源操作数保存在。

A.代码段 B. 堆栈段C. 数据段 D. 附加段

11.操作数地址由BX寄存器指出,则它的寻址方式是。

A.直接寻址 B. 寄存器寻址 C. 立即寻址D. 寄存器间接寻址12.指令“MOV ES:[BX],AX”中,目的操作数的寻址方式为。

A.立即数寻址 B. 寄存器寻址

C.存储器直接寻址D. 寄存器间接寻址

13.一条指令中目的操作数不允许使用的寻址方式是。

A.寄存器寻址 B.立即数寻址

C.变址寻址 D. 寄存器间接寻址

14.下列哪句话是错误的。

A.指令的目的操作数和源操作数可以同时使用寄存器间接寻址

B. 指令的目的操作数和源操作数可以同时使用寄存器寻址

C. 指令的源操作数可以使用寄存器间接寻址

D. 指令的目的操作数可以使用寄存器寻址

15.用直接寻址将AL的内容保存到16号单元,可用指令。

A.MOV DS:[0016H],AL B. MOV AL, DS:[0016H]

C. MOV DS:[0010H],AL

D. MOV AL, DS:[0010H]

第三章参考答案

习题三答案:

3.3 MOV AX,BX 源操作数为寄存器寻址,EA无,物理地址无

MOV AX,1290H 立即寻址,EA无,物理地址无

MOV AX,[BX] 寄存器间接寻址,EA=1290H, 物理地址=2FBB0H

MOV AX,DS:[1290H] 直接寻址,EA=1290H, 物理地址=2FBB0H

MOV AX,[BP] 寄存器间接寻址,EA=6756H, 物理地址=26A56H

MOV [DI][BX],AX 目的操作数为基址变址寻址,EA=3C06H, 物理地址=32526H

MOV ES:[SI],AX 寄存器间接寻址,EA=348AH, 物理地址=50CAAH

3.7 MOV AX,[CX] 错。CX不能为间址寄存器

MOV AL,1200H 错。立即数超出8位寄存器范围

MOV AL,BX 错。两个操作数不匹配

MOV [SI][DI],AX 错。两个变址寄存器不能在一起

MOV ES:[DX],CX 错。DX不能为间址寄存器

MOV [AX],V ALUE 错。AX不能为间址寄存器

MOV COUNT,[SI] 错。两个操作数不能都是存储单元

3.8 (1) MOV AX,BX (2) MOV CL,15 (3) ADD AX,[BX]

3.9 (1) A DD AX,[X+4] (2) MOV BX,4 (3) MOV BX,4

MOV Y,AX ADD AX,X[BX] MOV SI,OFFSET X

MOV Y,AX ADD AX,[BX+SI]

MOV Y,AX

3.10 立即寻址方式中操作数(立即数)和指令一起存放在代码段中。

测验三答案:

1~5 BCDCA6~10 DCBAC 11~15 DDBAC

习题四

4.1 汇编语言程序有什么特点?什么是源程序?

4.2 简要说明从源程序到可执行程序的操作过程。

4.3 什么是伪指令?汇编指令与伪指令有何区别?写出4种常用的伪指令。

4.4 8086指令系统分为哪几类?举例说明算术运算类指令的用法。

4.5 在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许?

4.6 堆栈段寄存器SS和栈指针SP可以修改吗?如何修改?

4.7 入栈指令PUSH和出栈指令POP可以保存字节数据吗?要保存的话,如何实现?

4.8 有哪些方法可以获得操作数的有效地址?

4.9 解释下列伪指令的作用:

(1) ASSUME CS:CODE,DS:DA TA (2) END START

(3) V ALUE DW 12,35,-6 (4) STRING DB …INPUT:?

(5) MESS DB 5 DUP(?) (6) XX DD 12345678H

(7) ORG 0320H (8) CONT EQU 2*3.14

4.10 根据题目,写出相关伪指令:

(1)定义数据段DA TA,并在数据段中定义两个字单元X、Y,初始值都是0

(2)定义一个字符串SRING,保存?Computer?

(3)定义有100个字节单元的COUNT数组,初始值均为空

(4)用赋值伪指令定义PI为3.14

(5)用类型操作符LABEL将V ALUE单元定义为字节型

4.11 下列伪指令有错吗?如果有错,请指出错误原因:

(1) X1 DB 35H,0,-80 (2) X2 DB 35,260,-1 (3) X3 DB 1234H

(4) X4 DW 100 (5) X5 DW 100(?) (6) X6 DD …AB?

4.12 写出下列指令的执行结果:

TABLE DB 3,33,33 H

(1)MOV AL,TABLE

(2)MOV AX,WORD PTR TABLE

(3)MOV DX,OFFSET TABLE

(4)MOV CL,TABLE+2

(5)MOV BX,SEG TABLE

(6)MOV BX,TYPE TABLE

(7)LEA DX,TABLE

4.13 写出指令序列,分别求两个双精度数20125D68H和100349A6H的相加和相减运算。

4.14 写出将DX、AX中的32位无符号数减CX中的16位无符号数,结果存放在DX、AX中的指

4.15 写出将extra段的段地址传送给ES寄存器的指令序列。

4.16 根据给出的算式,写出指令序列(设X、Y、W为字节型,Z为字型):

(1)Z=5(X+16)

(2)Z=X/4-Y

(3)Z=8X+Y/16-W^2

(4)Z= (X+Y)(X-Y) -X/Y

4.17 分析下列程序段执行情况,给出结果:

X DB 5,15,30

Y DB 22,14,6

Z DW ?

……

MOV BX,OFFSET X

MOV AL,[BX]

ADD AL,Y

INC BX

SUB AL,[BX]

MOV BL,Y+1

IMUL BL

MOV Z,AX

4.18 源程序在汇编过程中,系统是如何获知程序从哪儿开始执行的?

4.19 两个数8576H和9988H,分别作减法和加法运算,写出指令及运算结果。运算结果影响哪些标志?

4.20 乘法和除法指令对于字和字节操作是如何进行的?

4.21 用压缩BCD码实现下列运算:

(1)Y1=56+34

(2)Y2=128-35

(3)Y3=68+23-45

4.22 用非压缩BCD码实现下列运算:

(1)Z1=78+46

(2)Z2=95-27

(3)Z3=12×6-33

(4)Z4=(74+18)/6

4.23 编程序。从键盘输入一个数字,去掉ASCII码后保存到BUFF单元。

4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。

4.25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。

4.26 编写程序,建立一个0~9的平方根表,查表可得某数的平方根。

4.27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。

4.28 编程实现公式计算Z=X/4+16Y。

4.29 编写程序段,将AL中的数乘以6,与CL相减后再除以3;把商保存到Y单元,余数保存到Y+1单元。

4.30 用简化的程序格式编程序,在屏幕的5行12列上显示红底白字的字符串“Come”。

测验四

单选题:

1.经过汇编产生的二进制目标文件是。

2.汇编语言源程序是指。

A.系统提供的MASM B.用户编写的.ASM

C.汇编生成的.LST D.连接生成的.EXE

3.在汇编期间,为汇编程序提供分段信息的是。

A.ASSUME伪指令B.SEGMENT伪指令

C.标号START D.MOV指令

4.不能用MOV指令赋初值的段寄存器是。

A.DS B.ES C.CS D.SS

5.在COUNT DB 5 这条存储单元定义伪指令中,COUNT称为。

A.助记符B.变量C.符号D.标号

6.将10个字数据3456H存放在存储单元中的伪指令是。

A.DW 10H DUP (3456H) B.DW 10 DUP (3456H)

C.DW 10H DUP (5634H) D.DW 10 DUP (5634H)

7.将字符串”INPUT”保存到存储单元MESS,正确的伪指令是。

A.INPUT DB MESS B.MESS DB INPUT

C.INPUT DB “MESS”D.MESS DB “INPUT”

8.若X已经定义为字型,可以用改变为字节型。

A.BYTE PTR X B.OFFSET X C.TYPE X D.LABEL X 9.INC WORD PTR [BX]指令中的操作数的数据类型是。

A.字节B.字C.双字D.四字

10.ABC DW 1, $+2, 5,7,其中$代表。

A.当前的偏移地址值为0 B.当前的偏移地址值为1

C.当前的偏移地址值为2 D.当前的偏移地址值为3

11.如果想让程序从100H开始存放及执行,用指令。

A.START EQU 100H

B.ORG 100H

C.END START

D.MOV START,100H

12.可用来指出一条汇编指令所在存储单元的符号地址。

A.变量B.数组名C.标号D.偏移量

13.汇编语言中存储单元的属性不能是。

A.字符CHAR型B.字节BYTE型

C.字WORD型D.双字DWORD型

14.用指令MOV BX,SEG COUNT指令,可以得到存储单元COUNT的。

A.物理地址B.段地址C.偏移地址D.属性

15.下列传送指令中,有错误的是。

A.MOV AH,BL B.MOV DS,AX

C.MOV CL,DX D.MOV SI,90

16.若AX=1E30H,BX=12E4H则ADD AL,BL的执行结果为AL= ,CF= 。

A.14H ,0 B. 24H ,0 C. 14H ,1 D. 24H,1

17.若AX=1240H,CX=9939H,则ADD AX,CX 执行后,AH= 。

A.ABH B. 79H C.AB79H D. 79ABH

18.若BL=83H,CF=1,则ADC BL,90H执行后,BL= 。

A.14H B. 15H C. 16H D. 17H

19.若DX=1010H,BX=0923H则SUB DX,BX的执行结果为。

A.168DH B. 06EDH C. F6DDH D. 0087H

A.1号功能B.2号功能

C.9号功能D.10号功能

21.DOS功能调用中,功能号应写入寄存器中。

A.AL B.AH C.DL D.DH

22.SP栈指针内容是1200H,执行两条PUSH指令之后,SP的值为。

A.1202H B.1204H C.11FCH D.11FEH

23.换码指令XLA T要求给出存储单元的有效地址为。

A.(BX)+(AL) B.(BX)+(AX) C.(BX) D.(AL)

24.显示一个字符的DOS功能调用要求将字符放入。

A.DS:DX B.DS:BX C.BL D.DL

25.获得BUFFER单元有效地址的汇编指令为。

A.MOV BX,BUFFER B.LEA BX,BUFFER

C.MOV BX,[BUFFER] D.LDS BX,BUFFER

26.下列哪个指令可以把字扩展为双字。

A.CBW B.CWD C.CWB D.CDW

27.关于字节乘法指令错误的说法是。

A.被乘数隐含在AL中B.乘数和被乘数都是字节型

C.被乘数隐含在AX中D.乘积是字型

28.关于字除法错误的说法是。

A.16位被除数AX与8位源操作数相除

B.32位被除数DX、AX与16位源操作数相除

C.商在AX寄存器,余数在DX寄存器中

D.带符号除法的商和余数都是补码表示的数

29.非压缩的BCD加法调整指令是。

A.DAA B.DAS C.AAS D.AAA

30.用直接写显存的方法显示字符,把3行1列上的字符及属性输入到显存单元。

A.140H+06H, 140H+07H B.1E0H+02H, 1E0H+03H

C.140H+02H, 140H+03H D.1E0H+01H, 1E0H+02H

测验四答案:

1~5 BBACB 6~10 BDABC 11~15 BCABC

16~20 CAABD 21~25 BCADB 26~30 BCADB

第四章参考答案

习题四答案:

4.10 (1) DA TA SEGMENT

X DW 0

Y DW 0

DA TA ENDS

(2) STRING DB ?Computer?

(3) COUNT DB 100 DUP(?)

(4) PI EQU 3.14

(5) V ALUE LABEL BYTE

4.11 (1)对。(2)错。260超出了字节范围。(3)错。X3是字节型,1234H是字型,不匹配。

(4)对。(5)错。缺少DUP。(6)对。

(5)BX=TABLE的段地址。(6)BX=1。(7)DX= TABLE的偏移地址。

4.13 MOV DX,2012H

MOV AX,5D68H

MOV CX,1003H

MOV BX,49A6H

ADD AX,BX (SUB AX,BX)

ADC DX,CX (SBB DX,CX)

4.14 SUB AX,CX

SBB DX,0

4.15 MOV AX,extra

MOV ES,AX

4.16 (1) MOV AL,16

ADD AL,X

MOV BL,5

IMUL BL

MOV Z,AX

(2)MOV BL,4

MOV AL,X

IDIV BL

SUB AL,Y

MOV Z,AX

(3)MOV AL,X

MOV BL,8

IMUL BL

MOV DX,AX

MOV AH,0

MOV AL,Y

MOV BL,16

IDIV BL

CBW

ADD DX,AX

MOV AH,0

MOV AL,W

IMUL AL

SUB DX,AX

MOV Z,DX

(4)MOV AL,X

ADD AL,Y

MOV BL,X

SUB BL,Y

MOV AH,0

IMUL BL

MOV Z,AX

MOV AL,X

IDIV Y

CBW

4.17 Z= (5+22-15)*14= 168

4.18 从伪指令END START处获知程序从START标号开始。

4.19 (1)减法:(2) 加法:

MOV AX,8576H MOV AX,8576H

MOV BX,9988H MOV BX,9988H

SUB AX,BX ADD AX,BX

结果:AX=EBEEH 结果:AX=1EFEH

CF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=0 4.21 (1) MOV AL,56H

MOV BL,34H

ADD AL,BL

DAA

MOV Y1,AL

(2) MOV AX,128H

MOV BX,35H

SUB AX,BX

DAS

MOV Y2,AL

(3) MOV AL,68H

MOV BL,23H

ADD AL,BL

MOV BL,45H

SUB AL,BL

DAS

MOV Y3,AL

4.22 (1) MOV AX,0708H

MOV BX,0406H

ADD AL,BL

ADD AH,BH ;不用带进位加

AAA ;加法调整,含进位调整

MOV BX,AX

XCHG AH,AL ;高4位调整

AAA

MOV BH,AL

MOV Z1,BX ;保存十位、各位,百位在CF中

(2) MOV AX,0905H

MOV BX,0207H

SUB AL,BL

SUB AH,BH ;不用带借位减

AAS ;减法调整

MOV Z2,AX

(3) MOV AX,0102H

MOV BX,0006H

MUL BX ;乘法先不用调整

MOV BX,0303H

SUB AX,BX

MOV Z3,AX

(4) MOV AX,0704H

MOV BX,0108H

ADD AL,BL

ADD AH,BH

AAA ;加法调整

MOV BL,6

AAD ;除法调整

DIV BL

MOV BH,AH ;余数保存在BH

AND AX,000FH

AAA ;商调整

MOV Z4,AX ;保存商

4.23 编程序。从键盘输入一个数字,去掉ASCII码后保存到BUFF单元。

.model small

.data

buff db ?

.code

start:

mov ax,@data

mov ds,ax

mov ah,1 ;键盘输入

int 21h

sub al,30h ;去掉ASCII码

mov buff,al

mov ah,4ch

int 21h

end start

4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。

.model small

.code

start:

mov ah,1 ;键盘输入

int 21h

sub al,20h ;变为大写

mov dl,al

mov ah,2

int 21h

mov ah,4ch

int 21h

end start

4.25 X和Y都是字节型数据,编写将两数相加的结果显示出来的程序段。

.model small

.data

x db 12h

y db 34h

start:

mov ax,@data

mov ds,ax

mov al,x

add al,y ;结果为46H

mov ah,al ;AH=46H

and al,0fh ;AL=06H

mov cl,4

rol ah,cl ;AH=64H

and ah,0fh ;AH=04H

add ax,3030h ;AX=3436H

mov bx,ax

mov dl,bh ;显示4

mov ah,2

int 21h

mov dl,bl ;显示6

int 21h

mov ah,4ch

int 21h

end start

4.26 编写程序,建立一个0~9的平方根表,查表可得某数的平方根。data segment

x db '0.000','1.000','1.414','1.732','2.000'

db '2.236','2.449','2.646','2.828','3.000' ;建立字符表

y db 5 dup(?) ;存放查到平方根

u db 3 ;要查的数

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

mov al,u ;要查的数

mov cl,5

mul cl ;u*5=15(号单元开始)

mov ah,0

mov bx,ax ;地址保存到bx

mov si,0

let1:

mov al,x[bx] ;取出平方根数字

mov y[si],al ;存入y

inc si

inc bx

loop let1 ;循环取出5次

mov ah,4ch

int 21h

end start

4.27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。

.model small

.data

x1 db 'zhang yan $' ;姓名为10个字符宽度

x2 db 'li li $'

x3 db 'wang lan $'

x4 db 'zhao xue $'

x5 db 'li jiang $'

u db 3 ;要查的学号

.code

start:

mov ax,@data

mov ds,ax

mov al,u ;给出学号

mov cl,10

mul cl ;u*10=30(号单元开始)

mov ah,0

mov dx,ax ;地址保存到dx

mov ah,9 ;9号功能显示字符串

int 21h

mov ah,4ch

int 21h

end start

4.28 编程实现公式计算Z=X/4+16Y。

.model small

.data

x db 4

y db 6

z db ?

.code

start:

mov ax,@data

mov ds,ax

mov al,x ;

mov cl,2

sar al,cl ; X/4

mov cl,4

mov bl,y

sal bl,cl ;16Y

add al,bl ;X/4+16Y

mov z,al

mov ah,4ch

int 21h

end start

4.29 编写程序段,将AL中的数乘以6,与CL相减后再除以3;把商保存到Y单元,余数保存到

.model small

.data

y db ?,?

.code

start:

mov ax,@data

mov ds,ax

mov al,3 ;设al=3

mov cl,6

mul cl ;al*6

mov cl,4 ;设cl=4

sub al,cl ;相减

mov bl,3

idiv bl ; /3

mov y,al ;商

mov y+1,ah ;余数

mov ah,4ch

int 21h

end start

测验四答案:

1~5 BBACB 6~10 BDABC 11~15 BCABC

16~20 CAABD 21~25 BCADB 26~30 BCADB

习题五

5.1 转移指令分为哪两大类?转移指令的操作码和操作数如何表示?

5.2 写出与转移地址有关的寻址方式。

5.3 根据标志位转移的指令有哪些?执行什么操作时可以改变标志?

5.4 简述CPU实现分支的过程。

5.5 在短转移格式下,指令跳转的范围是多少?

5.6 在比较转移指令之前可以用什么指令进行判断?

5.7 比较转移指令为什么要分为无符号数比较和带符号数比较两类?

5.8 汇编语言可以控制和改变二进制某一位。有哪些指令可做位操作?

5.9 TEST指令是如何实现判断的?请举例说明。

5.10 移位指令影响标志位吗?影响哪些标志位?

5.11 已知(BX)=7890H,写出指令实现逻辑左移2位。请问哪个标志位改变了?

5.12 分析下列程序段,给出执行结果:

MOV AX,1234H

MOV CL,3

SAR AX,CL

AND AX,0FH

ADD AL,30H

MOV DL,AL

MOV AH,2

5.13 试说明下列程序段完成了什么操作?

MOV AX,X

MOV BX,Y

CMP AX,0

JGE AA1

NEG AX

JMP AA2

AA1: SUB AX,BX

AA2: MOV Z,AX

5.14 指出下列指令的错误所在。

(1)AND [SI],3

(2)SUB DS,AX

(3)PUSH 5

(4)OR 80H,AL

(5)CMP [BX],TABLE

(6)ROL AL,3

5.15 写出将AL.4清零的指令。(AL中除第4位外的其他位保持不变)。

5.16 分别指出每条指令执行结果:

MOV AL,37H

(1) AND AL,0F0H

(2) OR AL,03H

(3) NOT AL

(4) XOR AL,0FH

5.17 简述操作系统对可执行程序的加载和执行过程。

5.18 PSP程序段前缀是什么时候建立的?占用多大内存空间?保存了什么内容、作用是什么?5.19 转移指令中的标号在汇编时被翻译成什么值?这种方法的优点是什么?

5.20 无条件转移指令JMP $+2作用是什么?其转移地址是多少?

5.21 什么是分支表?怎样用分支表实现多路分支?

5.22 哪些逻辑指令可以使操作数清零?请写出指令。

5.23 用逻辑指令实现将AX的低4位清0。

5.24 用移位指令实现AX的高8位和低8位交换。

5.25 写出判断一个操作数是否为负数的程序段。

5.26 写出程序段。判断字节单元X中的数是否为偶数,是偶数则显示?Y?,否则显示?N?。

5.27 分支程序设计。完成如下公式的计算,请写出程序。

(X+3)/2 X>0

Y= 0 X=0

X×4 X<0

5.28 设X、Y、Z为字节单元。如果X≥0,Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。5.29 字数组M中有10个数据,分类统计其中正数、负数、0的个数,分别存入POSI、NEGA、ZERO 单元。

5.30 试编写程序,从键盘接收一英文单词,以空格结束,将其存入BUF开始的存储单元中,并在最后加上字符串结束符?$?。

5.31编程。将AX寄存器中的16位数分成4组,每组4位,从低到高分别放在AL,BL,CL,DL 中。

测验五

单选题:

1.在分支指令中,利用符号进行判断的指令是_______。

A.JC B.JS C.JZ D.JO

2.当一个带符号数大于FFH时程序转移,满足条件的是_______。

A.正数和零B.负数C.负数和零D.大于255的数

3.在执行条件转移指令前,不能形成条件的指令有________。

A.CMP B.SUB C.AND D.MOV

4.无条件转移指令中,段内直接近转移到标号LET1的指令是________。

A.JMP SHORT LET1 B.JMP LET1 C.JMP BX D.JMP WORD PTR LET1

5.条件转移指令的转移范围是________字节。

A.-32768到+32767 B.0到255

C.-128到127 D.0到65535

6.要实现段间转移,下列说法正确的是________。

A.标号的属性为NEAR型的B.标号的偏移地址送入CS

C.既要改变IP又要改变CS D.转移地址不能用存储单元给出

7.在条件转移指令中,结果不为0则转移的指令是________。

A.JNS B.JZ C.JS D.JNZ

8.两个带符号数比较,不大于则转移的指令是________。

A.JLE B.JBE C.JL D.JAE

9.设A=9210H,B=4582H,如果A>B,做相减运算,否则做相加。执行JG指令后,结果是________。

A.做相减运算B.做相加运算

C.先做相减再做相加D.什么都不做

10.在条件判断时,采用操作数相与运算的判断指令是________。

A.TEST B.CMP C.AND D.JCXZ

11.8086的转移指令根据转移的范围分为段内转移及段间转移,下列是错误的。

A.无条件指令既可以段内转移,也可以段间转移

B.无条件转移指令既可以直接转移,也可以间接转移

C.条件转移指令既可以段内转移,也可以段间转移

D.条件转移指令是段内的直接短转移

12.带符号数乘以2操作用移位指令实现。

A.SAL AL,1 B.SAL AL,2

C.SHR AL,1 D.ROL AL,2

13.将AL的2、6位屏蔽为0,其余位保持不变,指令为。

A.AND AL,42H B.AND AL,0BBH

C.OR AL,26H D.ADD AL,0FBH

14.将AL的第4位置1,其余位不变,指令为。

A.OR AL,40H B.AND AL,40H

C.OR AL,10H D.AND AL,1FH

15.将AL清0的指令为。

A.AND AL,AL B.OR AL,0

C.XOR AL,AL D.XOR AL,0

16.对键盘输入的数字和字母进行判断,用指令。

A.TEST AL,40H B.TEST AL,20H

C.CMP AL,40H D.CMP AL,20H

17.将键盘输入的小写字母变为大写,用指令。

A.AND AL,20H B.AND AL,0DFH

C.OR AL,20H D.OR AL,0DFH

18.在操作系统下执行用户程序,属于。

A.段内直接转移B.段间直接转移

C.段内间接转移D.段间间接转移

19.如无特殊指定,操作系统将用户程序调入内存时,代码段中第一条机器指令的。

A.段地址为0 B.段地址由DS指出

C.偏移地址为0 D.偏移地址由SP指出

20.用户程序中的数据段的段地址,用指令给出。

A.MOV AX,CODE B.MOV CS,CODE

MOV CS,AX MOV DS,CS

C.MOV CS,DA TA D.MOV AX,DA TA

MOV DS,CS MOV DS,AX

测验五答案:

1~5 BADBC 6~10 CDABA11~15 CABCC 16~20 ABBCD

第五章参考答案

习题五答案:

5.11 进位标志CF=1

5.12 先把AX的值除以8等于0246H,再把高12位屏蔽为0,剩下AL=06H加上30H变为ASCII 码显示出来。

5.13 判断X>0,是,Z=X-Y;否则Z=X的绝对值

5.14 (1) 目的操作数是存储单元时,要用PTR伪操作指出单元的属性。

(2)DS段寄存器使用非法

(3)立即数使用非法。

(4)目的操作数不允许是立即数

(5) 两个操作数不允许都是存储单元

(6)移位次数超过1要用CL表示。

5.15 AND AL,11011111B

5.16 (1) AL=30H (2) AL=B7H (3) AL=C8H (4)AL=38H

5.27分支程序设计。完成如下公式的计算,请写出程序。

(X+3)/2 X>0

Y= 0 X=0

X×4 X<0

程序:

DA TA SEGMENT

X DB 23

Y DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

汇编语言基础练习题目

、填空 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分,共20分) 1、设DS=8225H,DI=3942H,指令NEG BYTE PTR [DI]操作数的物理地址是()。 A、85B92H B、86192H C、BB690H D、12169H 2、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是()。 A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 3、循环指令LOOPNZ终止循环的条件是()。 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX≠0,且ZF=0 D、CX≠0,或ZF=1 4、对寄存器AX的内容乘以4的正确指令序列是()。 A、SHR AX,1 SHR AX,1 B、SHL AX,1 SHL,AX,1 C、ROL AX,1 ROL AX,1 D、RCR AX,1 RCR AX,1 5、执行INC指令除对于SF、ZF有影响外,还要影响的标志位是()。 A、OF,AF,PF B、OF,AF,CF C、OF,PF,CF D、AF,PF,CF 6、设DH=10H,执行NEG DH指令后,正确的结果是()。 A、DH=10H CF=1 B、DH=10H CF=0 C、DH=10H CF=0 D、DH=0F0H 7、下列传送指令中有语法错误的是()。 A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 8、下面指令执行后,改变AL寄存器内容的指令是()。 A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 9、执行除法指令后,影响的标志位是() A、CF,OF

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

汇编语言复习题

汇编语言复习题 第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、在下列的选项中,能够组成计算机系统的是()。 A.硬件系统和软件系统 B.CPU、存储器、输入/输出设备 C.操作系统、各种语言 D.系统软件和应用软件2、汇编语言属于()。 A.用户软件 B.系统软件 C.高级语言 D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是()。 A.EXE B.OBJ C.ASM D.LST 4、汇编语言的什么文件经链接(LINK)后产生可执行文件? A.ASM B.EXE C.LST D.OBJ 5、中央处理器CPU是由()组成的。 A.运算器 B.控制器 C.寄存器组 D.前三者6、IBM PC机的DOS是属于()。 A.用户软件B.系统软件C.系统硬件 D.一种语言7、汇编语言源程序是()程序。 A.不可直接执行的B.可直接执行的 C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有()个。 A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有()个。 A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有()个标志位会受影响。 A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是()。 A.上一条指令的首地址B.本条指令的首地址。 C.下一条指令的首地址D.需计算有效地址后才能确定地址。 12、IBM PC机的存储器可分()个段。 A.4B.256C.512D.65536 13、当使用BP作编程地址时,此时使用的是()段。 A.CSB.DSC.ESD.SS

汇编语言习题-测验题答案

汇编语言各章习题、测试题答案 习题一 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数 01110111 00101111 十六进制运算 1A52H+4438H 3967H-2D81H 37H×12H 1250H×4H 将十进制数变为8位补码并做运算(结果用二进制、十六进制、十进制表示) 29+53 73-24 -66+82 -102-15 用压缩BCD码计算(结果用二进制、BCD码、十进制表示) 29+53 73-24 66+18 132+75 符号位扩展(字节扩展为字,字扩展为双字) 20A3H 94H 3456H 7FH EC00H 若机器字长为16位,其无符号数表示范围是多少带符号数表示范围是多少分别用十进制和十六进制表示。 写出下列十六进制数所能代表的数值或编码: (1)38H (2)FFH (3)5AH (4)0DH 将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码: (1)108 (2)46 (3)-15 (4)254 写出下列算式的8位二进制运算结果,标志位CF、SF、ZF、OF分别是什么值 (1)56+63 (2)83-45 (3)-74+29 (4)-12-37 查表,指出ASCII码0DH、0AH、07H、1BH、20H、60H、50H、70H对应的控制字符。 测验一 单选题: 1.已知X=76,则[X]补= 。 A. 76H B. 4CH 2.已知[X]补=80H,则X= 。 A. 80H B. 0 C. 0FFH D. -80H 3.已知[X]补=98H,则[X]补/2= 。 A. 0CCH 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. B. C. D. 7. 45转换成二进制数是 A. C. 00101101 D. 8.6CH转换成十进制数是 A. 118 B. 108 C. 48 D. 68 9.将93H扩展为字的结果是 A. FF93H B. 0093H C. 1193H D. 1093H

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

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

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

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 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和

汇编题库重点复习题

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. 目标程序

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

汇编语言程序设计复习题 一、单项选择题 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

完整版汇编语言试题及答案..doc

一,单项选择题 (每小题 1 分,共 20 分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令 JMP FAR PTR DONE 属于 ( C 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.12CSBH B.12B6BH

C.12C59H 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

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言复习题附带答案.

复习题 一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答案的题号,填入题干的括号内。多选不给分。。 1.十六进制数 88H ,可表示成下面几种形式,请找出错误的表示(④。 ①无符号十进制数 136 ②带符号十进制数-120 ③它的二进制形式是 10001000B ④ 8位二进制数-8的补码表示 2.存放条件码标志、控制标志和系统标志的寄存器是(④。 ① IP ② SP ③ BP ④ PSW 3. 执行加法运算不能使用的寄存器是 ( ③。 ①、 BP ②、 SI ③、 CS ④、 CL 4.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是 (② ①、 AX , BX , CX , DX ②、 BX , BP , SI , DI ③、 SP , IP , BP , DX ④、 CS , DS , ES , SS 4、下列传送指令中有语法错误的是 (①。 ①、 MOV CS, AX ②、 MOV DS, AX ③、 MOV SS, AX ④、 MOV ES, AX 5. ADD AX , BX 指令执行完后 OF=1,下列说法正确的是(③ ①、如果 AX,BX 得内容均是带符号数,那么表示执行结果正确

②、如果 AX,BX 得内容均是无符号数,那么表示执行结果不正确; ③、如果 AX,BX 得内容均是带符号数,那么执行结果表示溢出; ④、如果 AX,BX 得内容均是无符号数,那么执行结果表示溢出; 6.一个有 16字的数据区域,它的起始地址是 70A0:DDF6,那么该数据单元第三个字单元的物理地址为(④ ①、 7E816H ②、 7E814H ③、 7E7F8H ④、 7E7FAH 7、与 MOV BX, OFFSET VAR指令完全等效的指令是 ( ④。 ①、 MOV BX, VAR ②、 LDS BX, VAR ③、 LES BX, VAR ④、 LEA BX, VAR 8.如果 AX=0FFFEH,那么单独执行完 ADD AX , 1, RCR AX , 1 , (AX = (④ ①、 0000H ②、 8000H ③、 0FFFFH ④、 7FFFH 9. MOV AL , 88H TEST AL , 66H 指令执行完后, (AL =(① ①、 88H ②、 66H ③、 0H ④、 0EEH 10、 BUF DW 10H DUP(3 DUP(2, 10H , 3, 5 上述语句汇编后,为变量 BUF 分配的存储单元字节数是 (②。 ① A 、 80H ②、 100H ③、 124 ④、 192 11、下面指令执行后,变量 DAB 中的内容是(③。

汇编语言考试复习题

一、单项选择题(从下列每题的四个选择中选择一个正确的,填入答题纸的相应位置。每小题2分,共30 分) 1.下列指令有语法错误的是__________。 A) PUSH AL B) ADDC AX,50H C) MOV [SI],[DI] D) JMP WORD PTR[BX+5] 见书:35页,PUSH 2.执行下列程序段后,(AX)= ________。 TAB DW 1,2,3,4,5,6 ENTRY EQU 3 MOV BX, OFFSET TAB ADD BX,ENTRY MOV AX,[BX] A) 0003H B) 0300H C) 0400H D) 0004H 3.NC指令不影响_________标志。 A) OF B) CF C) ZF D) SF 4.执行下列指令后: STR1 DW ‘AB’ STR2 DB 16 DUP(?) CNT EQU $ -STR1 MOV CX,CNT MOV AX,STR1 HLT 寄存器CL的值是________,寄存器AX的值是________。 ①A) 10H B) 12H C) 0EH D) 0FH ②A) 00ABH B) 00BAH C) 4142H D) 4241H 5.汇编语言源程序经汇编后不能直接生成文件。 A).OBJ B).LST C).EXE D).CRF 6.8086 CPU在基址加变址的寻址方式中,已知BX=2000H,SI=1234H,则指令“MOV AX,[BX+SI+2]”的源操作在中。 (A)数据段中偏移量为3236H的字节 (B)数据段中偏移量为3234H的字节 (C)附加段中偏移量为3236H的字节 (D)附加段中偏移量为3234H的字节 (A)19,20 (B)20,无右孩子 (C)无左孩子,20 (D)无左孩子,无右孩子 7.执行下面的程序段后,DA T1单元的值是。 DAT1 DB 12H,34H

汇编语言试题及答案.

一,单项选择题(每小题1分,共20分 1-10CCCCAADACB 11-20.ADBBAADDCC 1.指令JMP FAR PTR DONE属于( C 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.12CSBH B.12B6BH

C.12C59H 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的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:( MOV AX,0 MOV AX,0 MOV BX,1 MOV CX,100 A:ADD AX,BX INC BX LOOP A HLT 执行后(BX=( A.99

汇编语言期末复习题库

一、填空题 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 。

相关文档
相关文档 最新文档