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

汇编语言各章习题答案

汇编语言各章习题答案
汇编语言各章习题答案

各章习题答案

第一章

练习题

1.将下列十进制数转换为二进制、八进制和十六进制数:37,51,73,92,511

答:37D=100101B=45Q=25H

51D=110011B=63Q=33H

73D=1001001B=111Q=49H

92D=1011100B=134Q=5CH

511D=111111111B=777Q=1FFH

2.将下列二进制数转换为十进制、八进制和十六进制数:10000001,10011001,11111111,11110100

答:10000001B=201Q=81H=129D

10011001B=231Q=99H=153D

11111111B=377Q=FFH=255D

11110100B=364Q=F4H=244D

3.将下列十六进制数转换为二进制和十进制数:

325,FF,1AB,2EC

答:325H=1100100101B=805D

FFH=11111111B=255D

1ABH=110101011B=427D

2ECH=1011101100B=748D

4.将下列十进制数转换为BCD码表示:

121,46,732,1281

答:121D=(0001,0010,0001)BCD

46D=(0100,0110)BCD

732D=(0111,0011,0010)BCD

1281=(0001,0010,1000,0001)BCD

5.将下列二进制补码转换为十进制数:

10010110,00101010,11101110,11000000

答:[10010110]补=-(1101001+1)B=-6AH=-106D

[00101010]补=+0101010B=+2AH=+42D

[11101110]补=-(0010001+1)B=-12H=-18D

[11000000]补=-(0111111+1)B=-40H=-64D

6.已知[X]补=1100000B,[Y]补=0100100B,[Z]补=0011001B。求[-X]补,[-Y]补,[-Z]补;并计算[X-Y]补=?[X-Z]补=?若有溢出请给以说明。

解:[-X]补=-[X]补=-1100000B=0100000B,[-Y]补=-[Y]补=-0100100B=1011100B,[-Z]补=-[Z]补=-0011001B=1100111B

[X-Y]补=[X]补+[-Y]补=1100000B +1011100B=1,011,1100B 有溢出,因为CP⊕CF=1;

[X-Z]补=[X]补+[-Z]补=1100000B +1100111B=1,100,0111B 无溢出,因为CP⊕CF=0

第二章

练习题

1.8086CPU由EU 和BIU 两部分组成。

2.8086CPU的基本总线周期由 4 个时钟周期组成,分别用T1、T2、T3、T4表示。

3.存储单元的物理地址的计算用公式表示为:物理地址= 段地址×16 + 偏移地址。

4.标志寄存器中共有9 个有效位用来存放条件标志和控制标志,其中CF表示进位标志。

5.在8086中,奇地址存储体与系统的高八位数据线相连。访问存储器时,当读/写奇地址存储体时,数据从D8~D15上传送。

6.堆栈操作是字操作。

7.当CPU访问存储器时,需利用M / IO 信号的高电平;而访问外设接口时,需利用该信号的低电平。

第三章

练习题

1、试分别说明下列各指令中源操作数和目的操作数的寻址方式:

①AND AX,0FFH ②AND BL,[0FFH]

③MOV DS,AX ④CMP [SI],CX

⑤MOV DS:[0FFH],CL ⑥SUB [BP][SI],AH

⑦ADC AX,0ABH[BX] ⑧OR DX,-35[BX][DI]

⑨PUSH DS ⑩CMC

2、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。

①MOV [BX][BP],AX ②TEST [BP],BL

③ADD [SI],DA_BYTE ④AND DH,DL

⑤CMP CL,1234H ⑥SHR [BX][DI],3

⑦NOT CX,AX ⑧LEA DS,35[SI]

⑨INC CX,1 ⑩INC [DI]

3、下面二条指令执行后,标志寄存器中CF、AF、ZF、SF和OF分别是什么状态?

MOV AL,86

ADD AL,0AAH

答:CF=1;AF=1;ZF=0;SF=0;OF=1

4、设(SS)=1200H,(SP)=2100H,(AX)=1234H,(BX)=6789H

①执行指令PUSH AX后,(SP)= 20FEH

②再执行指令PUSH BX,及POP AX后,(SP)= 20FEH ,(AX)= 6789H 。

5、已知程序段如下:

MOV AL,56H

MOV CL,4

ROL AL,CL

说明:AL的内容是65H ,程序段完成的功能是高低4位互换。

6、已知(AX)=0A5C6H,(CX)=0503H,CF=1

①执行以下三条指令后:(AX)= 8086H ,CF= 1 。

RCL AX,CL

AND AH,CH

RCR AX,CL

②执行以下三条指令后:(AX)= A5C0 ,CF= 1 。

SAR AX,CL

XCHG CH,CH

SHL AX,CL

7、分别说明下列每组指令中的两条指令的区别。

①MOV AX,TABLE LEA AX,TABLE

②AND BL,0FH OR BL,0FH

③MOV AX,[BX] MOV AX,BX

④SUB DX,CX CMP DX,CX

⑤MOV [BP][SI],CL MOV DS:[BP][SI],CL

答:①MOV AX,TABLE LEA AX,TABLE

MOV取变量的值,而LEA取变量的偏移地址

②AND BL,0FH OR BL,0FH

AND是将高4位清0,OR是将低4位置1

③MOV AX,[BX] MOV AX,BX

[BX]是将BX的内容作为偏移地址取数赋给AX,BX是将寄存器内容赋给AX

④SUB DX,CX CMP DX,CX

SUB保存结果到DX中,CMP不保存

⑤MOV [BP][SI],CL MOV DS:[BP][SI],CL

第一条使用段缺省是SS段,第二条使用段超越用DS段

8、根据所学指令,写出使AL置0的多种方法。

答:包括MOV AL,0

SUB AL,AL

AND AL,0

XOR AL,AL

9、将DX、AX中存储的32位带符号数(DX中存放高16位)求补。

解:利用[X]求补=0-X实现。

MOV BX,AX

MOV BX,0

SUB BX,AX

MOV AX,0

SBB AX,DX

MOV DX,AX

MOV AX,BX

10、编写程序将AX中的16位无符号数与BL中的8位无符号数相加。

解:可以利用字节相加,实现字相加,注意高字节相加,要加上进位。

ADD AL,BL

ADC AH,0

11、将AX中有0的各位对应的BX位取反,BX的其它位不变。

解:可利用异或指令实现。

NOT AX

XOR BX,AX

12、编写一段程序,实现16位无符号数的计算:W=(X-2)/2+Y,设X、Y、Z、W是已定义的存储器操作数。

解:程序如下所示。

MOV AX,X

SUB AX,2

SHR AX,1

ADD AX,Y

MOV W,AX

XOR DX,DX

ADC DX,0

第四章

习题

1、某数据段中有如下定义:

CNT1 EQU 20H

CNT2 DW 20H

比较指令MOV AX,CNT1与MOV AX,CNT2的区别。

答:指令MOV AX,CNT1是立即数据寻址。

指令MOV AX,CNT2是直接寻址。

2、下列各题中有语法错误,请说明原因,并分别用两种方法修改。

①M1 DW 5060H

MOV BL,M1

②M2 EQU 10H

MOV M2,AL

③M3 DB 1234

④M4 DW ‘ABCD’

答:①类型不匹配。可将M1定义为字节(DB)或将BL换为字(BX)。

②符号常量不能作为目的操作数。M2可用DB定义或将M2改为源操作数。

③DB是定义字节变量。可将立即数改为字节或用DW定义字变量。

④字符占一个字节。可用DB定义或用DW定义二个字符。

3、下面的数据定义中,包含数据’0102H’的字存储单元有多少个。

DB 10H DUP(1,2 DUP(2))

答:只有15个。因为空间里有16个01H、02H、02H,而字取值是高位地址存高字节,因此只有15个0102H字数据。

4、画出下面定义的数据段的存储结构图,分析有数据3000H的字存储单元有几个,它们的偏移量分别是多少?

DA TA SEGMENT

ORG 30H

DA1 DB 0,’0’,30H,0,30H

DW DA1

DA TA ENDS

答:存储结构图如下图所示。3000H的字存储单元有2个,它们的偏移量分别是30H和33H。

5、设某数据段定义如下:

DA TA SEGMENT

NUM1=8

NUM2=NUM1+10H

DA1 DB ‘IBM PC’

DB 0AH,0DH

CNT EQU $-DA1

DA2 DW ‘IB’, ‘M ’,’PC’,0A0DH

DA TA ENDS

说明:DA1和DA2的偏移量是多少?,NUM2和CNT的值是多少?DA+5字节单元的内容是什么?DA1和DA2的内容相同吗?为什么?

答:DA1和DA2的偏移量分别是0H和6H。

NUM2=18H=24D,CNT=8。

DA1+5字节单元的内容是’C’

DA1和DA2的内容不相同。因为对于字存储,高位地址存高字节,因此DA2的字节存储顺序是:’B’、’I’、’‘、’M’、’C’、’P’、0DH、0AH,与DA1不同。

6、画出下面数据段定义的内存分配情况。(设DATA段地址为:0B70H)

DA TA SEGMENT

V1 DB 43,43H,’C’,’GOOD!’

V2 DW 1200H,43H,V1,’Hi’,2 DUP(1)

V3 DD 12345678H,V2

DA TA ENDS

答:内存分配情况如下所示。

7、有如下数据段定义:

DA TA SEGMENT

D1 DB 61H,53H

D2 DW 1234H,45H

D3 DW 20 DUP(0)

DA TA ENDS

若DATA段地址为0B68H,执行下列程序后,各寄存器的值各是多少?

MOV AX,SEG D1 AX= 0B68H

MOV BX,OFFSET D3 BX= 0006H

MOV CL,TYPE D2 CL= 2

MOV CH,SIZE D2 CH= 2

MOV DL,LENGTH D2 DL= 1

MOV DH,SIZE D3 DH= 40

8、写出下列程序段汇编后的等效指令,程序执行后,寄存器AX、BX和CX

的内容分别是多少?

NUM1 EQU 340

NUM2=30*25

MOV AX,NUM2 LE NUM1;AX的值是:0000H ,等效指令:MOV AX,0000H

MOV BX,NUM2 GT NUM1;BX的值是:FFFFH ,等效指令:MOV BX,0FFFFH

MOV CX,NUM2-NUM1 ;CX的值是:019AH ,等效指令:MOV CX,019AH

9、汇编语言源程序中有哪4个段寄存器?如何定义各段,若段定义中没有用ORG指令指定起始偏移地址,则缺省起始偏移地址是多少?

答:4个段寄器分别是CS、DS、ES和SS。

段定义的格式是:段名SEGMENT

┇;段体

段名ENDS

若段定义中没有用ORG指令指定起始偏移地址,则缺省起始偏移地址是0000H。

10、说明将用户编写的汇编语言源程序编译成可执行文件的过程。

答:(1)用文字编辑软件编写源程序,可以使用如EDIT、记事本、写字板或WORD等字处理软件编写,以文本格式输出,文件的扩展名必须为.ASM。

(2)用汇编程序MASM.EXE或TASM.EXE对源文件进行汇编,形成目标文件.OBJ。

(3)用连接程序LINK.EXE对生成的目标文件进行连接定位,形成可执行文件.EXE。

第五章

习题

1.根据给定指令填空:

(1)MOV AL,05H

ADD AL,09H

AAA

(AL)= 04H

(2)MOV AL,75H

ADD AL,26H

DAA

(AL)= 01H

(3)MOV AL,05H

SUB AL,08H

AAS

(AL)= 07H

(4)MOV AL ,08H

MOV BL,07H

MUL BL

AAM

(AX)= 0506H

(5)MOV AX,0605H

MOV BL,08H

AAD

DIV BL

(AL)= 08H

2.把变量X中的一位十六进制数显示在屏幕上。答:程序如下:

DA TA SEGMENT

x DB 0DH

TAB D B '0123456789ABCDEF'

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA START: MOV AX,DA TA

MOV DS,AX

MOV AL,x

MOV BX,OFFSET TAB

XLAT

MOV DL,AL

MOV AH,02H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

3.求任一给定自然数(1≤N≤40)的立方值,并将立方值送DA T单元。答:程序如下

DA TA SEGMENT

N DB 40

D AT DW ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV AL,N

MOV CL,AL

MUL CL

MOV CL,N

XOR CH,CH

MUL CX

MOV DA T,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

4.将A单元的内容求补,并与原内容相“与”,结果存入B单元中。答:程序如下

DA TA SEGMENT

A D

B 37H

B DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV AL,A

NEG AL

AND AL,A

MOV B,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

5.编制程序将AX的中间8位,BX的低4位,DX的高4位拼成一个新字数据送DI为偏移地址的存储单元。

答:程序如下

DA TA SEGMENT

RESULT DW ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV AX,523AH

MOV BX,0C194H

MOV DX,1B87H

AND AX,0FF0H

AND BX,000FH

AND DX,0F000H

OR AX,BX

OR AX,DX

MOV DI,OFFSET RESULT

MOV [DI],AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

6.数据段中以DI为偏移地址的单元连续存放着4个字节无符号数,编制程序求他们的和与差。

答:加法程序如下

DA TA SEGMENT

A DD 12345678H

DD 87654321H

RESULT DD ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV DI,OFFSET A

MOV SI,OFFSET RESULT

MOV AX,WORD PTR [DI]

ADD AX,WORD PTR [DI+4]

MOV [SI],AX

MOV AX,WORD PTR [DI+2]

ADC AX,WORD PTR [DI+6]

MOV [SI+2],AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

减法程序只要将加法程序中的ADD用SUB代替,ADC用SBB代替即可实现。

7.将A单元中的二位16进制数拆成二个16位数。并分别转换为相应的ASCII 码存于B单元及C单元。

答:程序如下

DA TA SEGMENT

A D

B 0B7H

B DB ?

C DB ?

TAB DB '0123456789ABCDEF'

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV AL,A

AND AL,0F0H

MOV CL,4

ROL AL,CL

MOV BX,OFFSET TAB

XLAT

MOV B,AL

MOV AL,A

AND AL,0FH

XLAT

MOV C,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

第六章

习题

1.指出下列程序段执行AL的内容是什么?

a)MOV AL,60H

CMP AL,0BBH

JB L2

L1:MOV AL,0BBH

L2:NOP

b)MOV AL,60H

CMP AL,0BBH

JL L2

L1:MOV AL,0BBH

L2:NOP

c)XOR AL,AL

MOV BL,98H

ADD BL,88H

JNC L2

L1:INC AL

L2:NOP

d)XOR AL,AL

MOV BL,98H

ADD BL,88H

JNO L2

L1:INC AL

L2:NOP

e)MOV BL,46H

TEST BL,01H

JZ L2

L1:XOR AL,AL

JMP OK

L2:MOV AL,1

OK:NOP

f)MOV BL,46H

TEST BL,0FFH

JNP L2

L1:XOR AL,AL

JMP OK

L2:MOV AL,1

OK:NOP

答:a)AL=60H;b)AL=0BBH;c)AL=01H;d)AL=01H;e)AL=01H;f)AL=01H 2.判断PAK单元数据的奇偶性。当为奇数时置MEAK单元为1,当为偶数时置MEAK单元为0。

答:程序如下

DA TA SEGMENT

PAK DB 0B6H

MEAK DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

15

START: MOV AX,DA TA

MOV DS,AX

MOV AL,PAK

TEST AL,0FFH

JNP L2

L1: XOR AL,AL

JMP OK

L2: MOV AL,1

OK: MOV MEAK,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

3.将BUF单元起的20个数移到DAT单元起的存储区中。使用三种方法实现。答:方法一用JNZ从首地址开始传送实现,程序如下

DA TA SEGMENT

BUF DB '1234567890ABCDEFGHIG'

DA T DB 20 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV SI,OFFSET BUF

MOV DI,OFFSET DAT

MOV BL,20

L1: MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

DEC BL

JNZ L1

MOV AH,4CH

INT 21H

CODE ENDS

END START

16

方法二用JNZ从尾地址开始传送实现,程序如下

DA TA SEGMENT

BUF DB '1234567890ABCDEFGHIG'

DA T DB 20 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV SI,OFFSET BUF

MOV DI,OFFSET DAT

ADD SI,19

ADD DI,19

MOV BL,20

L1: MOV AL,[SI]

MOV [DI],AL

DEC SI

DEC DI

DEC BL

JNZ L1

MOV AH,4CH

INT 21H

CODE ENDS

END START

方法三用结束字符(假设’$’为结束字符)作为标志实现,程序如下DA TA SEGMENT

BUF DB '1234567890ABCDEFGHIG','$'

DA T DB 20 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV SI,OFFSET BUF

MOV DI,OFFSET DAT

L1: MOV AL,[SI]

17

18

CMP AL,'$' JZ NEXT MOV [DI],AL INC SI INC DI JMP L1

NEXT: MOV AH,4CH INT 21H CODE ENDS END START

4.从键盘输入一个字符。根据其内容对X 单元按下式赋值。试编程。 答:程序如下

DA TA SEGMENT x DB ? DA TA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DA TA START: MOV AX,DA TA MOV DS,AX MOV AH,01H INT 21H CMP AL,'0' JB OTHER CMP AL,'9' JA CHAR MOV AH,1 ;>'0'且<'9'是数字键 JMP EXIT CHAR: CMP AL,'A' JB OTHER CMP AL,'Z' JA CHAR1 MOV AH,-1 ;>'A'且<'Z'是大写字母键

0 Y =非字母数字 X= 1 Y=数字符 -1 Y=字母符

JMP EXIT

CHAR1: CMP AL,'a'

JB OTHER

CMP AL,'z'

JA OTHER

MOV AH,-1 ;>'a'且<'z'是小写字母键

JMP EXIT

OTHER: MOV AH,0 ;是其他键

EXIT: MOV X,AH

MOV AH,4CH

INT 21H

CODE ENDS

END START

5.统计一班50名学生成绩的等级(A:90~100;B:80~89;C:70~79;D:60~69;E:60以下)。

答:程序如下

DA TA SEGMENT

CJ DB 67,76,53,96,84,76,45,91,84,62

DB 67,76,53,96,84,76,45,91,84,62

DB 67,76,53,96,84,76,45,91,84,62

DB 67,76,53,96,84,76,45,91,84,62

DB 67,76,53,96,84,76,45,91,84,62

DJ DB 50 DUP('0'),'$'

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

MOV DS,AX

MOV CL,50

MOV SI,OFFSET CJ

MOV DI,OFFSET DJ

LP: MOV AL,[SI]

CMP AL,90

JB NEXT1

MOV DL,'A'

JMP NEXT5

19

NEXT1:CMP AL,80

JB NEXT2

MOV DL,'B'

JMP NEXT5

NEXT2:CMP AL,70

JB NEXT3

MOV DL,'C'

JMP NEXT5

NEXT3:CMP AL,60

JB NEXT4

MOV DL,'D'

JMP NEXT5

NEXT4:MOV DL,'E'

NEXT5:MOV [DI],DL

INC DI

INC SI

DEC CL

JNZ LP

MOV DX,OFFSET DJ

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

6.有三个变量A1、A2、A3,试将三个变量重新排序,使A1放最大者,A3放最小者。

答:程序如下

DA TA SEGMENT

A1 DB 21

A2 DB 54

A3 DB 87

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

START: MOV AX,DA TA

20

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 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.链接

汇编语言基础练习题目

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

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

微机原理与汇编语言复习题及参考答案 ——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=20H C.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的容乘以4的正确操作是() A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL 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的目标地址偏移量是(D)。 A.SI的容B.SI所指向的存字单元之容 C.IP+SI的容D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI) D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的。()

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

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 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. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(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)

一,单项选择题(每小题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的字节

汇编语言题库

汇编语言题库 一、单项选择题 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

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12 34 56 78H,[21200H]~[21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH ;偏移地址=bx=0100h (4)AX=3412H ;偏移地址=bx=0100h (5)AX=4C2AH ;偏移地址=bx+1100h=1200h (6)AX=7856H ;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H ;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov [sp],ax (7)mov ax,bx+di

(8)mov 20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[ SI ] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS = 2200H、SP = 00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop [bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h

汇编题库重点复习题

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

汇编语言习题答案

第3章自测练习 一、选择题(四选一) 1.表示一条处理器指令所在存储单元的符号地址是 C。 A 变量 B 常量 C 标号 D 偏移量 2.汇编语言中的变量有多种类型属性,但错误的类型是 B 。 A 字节型byte B 字符型char C 字型word D 双字型dword 3.执行mov bx,seg var指令,BX得到变量var的 B 。 A 物理地址 B 段地址 C 偏移地址 D 内容 语句中,采用 C 分隔标号和指令。 A 逗号 B 分号 C 冒号 D 空格 5.欲设定从偏移地址100H开始安排程序,可使用 A 伪指令。 A org 100h B start=100h C start db 100h D start equ 100h 6.与“mov bx,offset var”指令等效的指令是 D 。 A mov bx,var B 1ds bx,var C les bx,var D 1ea bx,var. 7.下条语句 buf db l0 dup(3 dup(?,10),3,10) 汇编后,变量buf占有的存储单元字节数是 B 。 A 100 B 80 C 40 D 20 8.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是 B。 A 0 B 0FFFFH C 1 D 0FFH 9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。 A db`AB' B dw `AB' C db 0ABH D dw 0ABH 10.在汇编语言程序中,对END语句叙述正确的是 C 。 A END语句是一可执行语句 B END语句表示程序执行到此结束 C END语句表示源程序到此结束 D END语句在汇编后要产生机器码 11.下面的数据传送指令中,错误的操作是D。 A mov ss:[bx+di],byte ptr 10h B mov dx,l000h C mov word ptr[bx],1000h D mov ds,2000h 12.下面指令执行后,变量dab中的内容是 C 。 daw dw 2A05h dab db 0Fah … mov al,byte ptr daw sub dab,al A 0DAH B 0FAH C 0F5H D 0D0H

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

复习题 一、单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答案的题号,填入题干的括号内。多选不给分。。 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 中的内容是(③。

《汇编语言》习题及解答

第1章基础知识 检测点(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 ~ (4)1GB是24(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: ' (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=24B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言期末复习题库

一、填空题 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.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13)个bit, 1024个Byte。 (4)1GB是 1073741824 (2^30)个Byte、1MB是 1048576(2^20)个Byte、1KB是 1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。 (7)从内存中读取1024字节的数据,8086至少要读 512 次,80386至少要读 256 次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N 次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。(8)在存储器中指令和数据没有任何区别,都是二进制信息。 检测点 2.1 (1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627 AX=F4A3H mov ah,31H AX=31A3H mov al,23H AX=3123H add ax,ax AX=6246H mov bx,826CH BX=826CH mov cx,ax CX=6246H mov ax,bx AX=826CH add ax,bx AX=04D8H mov al,bh AX=0482H mov ah,bl AX=6C82H add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H Microsoft(R) Windows DOS

汇编语言与接口技术 习题解答

习题一解答: 1.3(1)[0.0000]原=0.0000 [0.0000]反=0.0000 [0.0000]补=0.0000 (2)[0.1001]原=0.1001 [0.1001]反=0.1001 [0.1001]补=0.1001 (3)[-1001]原=11001 [-1001]反=10110 [-1001]补=10111 1.4[N]反=1.0101 [N]原=1.1010 [N]补=1.0110 N=-0.1010 1.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正 反码运算:01010011-00110011=[01010011]反+[-00110011]反=001010011 +[100110011]反=001010011+111001100=000100000 补码运算:01010011-00110011=[01010011]补+[-00110011]补=001010011 +[100110011]补=001010011+111001101=000100000 (2)原码运算:比较可知,负数较大,用负数减正数,结果为负 反码运算:0.100100-0.110010=0.100100+[1.110010]反=0.100100+ 1.001101=1.110001 补码运算:0.100100-0.110010=0.100100+[1.110010]补=0.100100+ 1.001110=1.110010 1.6(1) (11011011)2=(219)10=(001000011001)BCD (2) (456)10=(010*********)BCD (3) (174)8=(124)10=(000100100100)BCD (4) (2DA)16=(730)10=(011100110000)BCD 1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-26506 (2)9876H看成无符号数时,转换为十进制数是:39030 1.8(1)98的压缩BCD码为:10011000B (2)98的非压缩BCD码为:0000100100001000B

汇编语言习题以及答案

习题 4-4.试编程序将内存从50000H到5FFFFH的每个单元均写入数55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0;只要有错,则将AL置0FFH。 解: START:MOV AX,5000H MOV DS,AX MOV SI,0 MOV CX, 0FFFFH LOOP1: MOV BYTE PTR [SI], 55H MOV AL, [SI] CMP AL, 55H … JNZ LOOPERR LOOP2: INC SI LOOP LOOP1 MOV BYTE PTR [SI], 55H ;最后一个单元 MOV AL, [SI] CMP AL, 55H JNZ LOOPERR MOV AL, 0 ;全对 JMP LOOPOUT LOOPERR: MOV AL, 0FFH > LOOPOUT: NOP 4-5.编写一个子程序,对AL中的ASCII字符添加偶校验位(bit7),即:使AL中的“1”的个数为偶数。 解: ADDPARITY PROC NEAR AND AL, 7FH JP ADDEXIT OR AL, 80H

ADDEXIT: RET & ADDPARITY ENDP 4-6.利用上题的子程序,编程对内存物理地址10000H开始的1024个单元的ASCII字符加上偶校验位。 解: START:MOV AX,1000H MOV DS,AX MOV SI,0 MOV CX, 1024 LOOP1: MOV AL, [SI] CALL ADDPARITY [ MOV [SI], AL INC SI LOOP LOOP1 4-7、试写一子程序,完成对一个8位无符号数乘6的操作。要求:(1)只能用传送、加法及移位指令;(2)入口参数(即8位无符号数)放于AL中,出口参数(即乘6后的结果)放于AX。 解: MULTI6 PROC NEAR PUSH BX MOV AH, 0 ] SHL AX, 1 ;乘2 MOV BX, AX SHL AX, 1 ;乘4 ADD AX, BX ;乘6 POP BX RET MULTI6 ENDP 4-8.给定如下程序片段: \ START: MOV AX, 1000H,

习题(汇编语言)

一、单项选择/填空 1.如果指令的运算结果为0,则标志位 A.CF=1 B.OF=1 C.SF=1 D.ZF=1 1.8086CPU中,指令指针寄存器是 A.BP B.IP C.SP D.PSW 2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理地址为A.13000H B.23000H C.33000H D.3000H 2.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为 A.20200H B.30200H C.50200H D.200H 3.设SP寄存器的内容为1352H,AX寄存器的内容为1200H,执行指令“PUSH AX”后,SP寄存器的内容为 A.1200H B.1350H C.1352H D.1354H 3.已知SP=2110H,执行指令“POP AX”后,SP寄存器的值为 A.210EH B.210FH C.2111H D.2112H 4.下列四条指令中,错误的 ...指令是 A.MOV BX,[SI]B.MOV[BX], [SI] C.MOV DS,AX D.MOV AX, [BX] 4.顺序执行PUSH AX和POP BX两条指令,其功能等同于 A.MOV BX,AX B.MOV AX,BX C.XCHG AX,BX D.XCHG BX,AX 5.指令“MOV AX,[BX]”中,源操作数的默认段寄存器是 A.SS B.ES C.DS D.CS 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是 A.BX B.BP C.SI D.DI 6.执行“DIV BX”指令后,商存放在寄存器 A.AL中B.AH中C.AX中D.DX中 6.若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=1000H,执行“ADD AX,[BX]”指令后,AX= A.8856H B.6678H C.8800H D.6600H 7.设AL=57H,BL=24H,执行指令SUB AL,BL后,寄存器内容为()A.AL=57H,BL=24H B.AL=33H,BL=24H C.AL=57H,BL=33H D.AL=33H,BL=0 7.设AL=67H,执行“CMP AL,76H”后,AL= A.76H B.0DFH C.67H D.00 8.下列指令执行后,AL寄存器的值保持不变的是

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