汇编语言课后答案

汇编语言课后答案
汇编语言课后答案

1-1

(1)

传统计算机:①控制器;②运算器;③存储器;④输入设备;⑤输出设备。

现代计算机:①处理器;②存储系统;③输入输出系统。

(2) 直接控制硬件,易产生运行速度快,目标代码小的程序。

(3) 处理器中数量多,使用频率改,多种用途的一组寄存器。

(4) 后进先出。

(5) 6个状态标志:CF、AF、ZF、SF、PF、OF;3个控制标志位:DF、IF、TF。

(6) 左边最高位。

(7) 无。

(8) 字母大小写不同,但是表示同一个符号。

(9) 不被汇编。

(10) 源程序和目标代码,各种标识符的说明。

1-2

(1) √

(2) ×,属于专用寄存器

(3) ×,8个16位通用寄存器

(4) √

(5) ×,不一样,原因见P25

(6) √

(7) ×,4部分需要分隔符区别

(8) √

(9) ×,程序终止代表程序执行结束,不意味汇编结束。汇编是将源程序翻译

成目标模块代码的过程,源程序的最后必须有一条END伪指令表明汇

编结束,END指令之后的任何内容不被汇编程序处理。

(10) √

1-3

(1) 1M=220BYTE

(2) 8

(3) BX,CX,SI,DI,BP,SP

(4) 16,DL,DH

(5) 4,16

(6) 低4位地址全为0,64KB

(7) 段地址,偏移地址,IP

(8) 目录

(9) 操作码,地址码/操作数

(10) .ASM,目标模块,.EXE

1-4

见P2

1-5

见P10

1-6

(1) 0FFF0H

(2) 417H

(3) 24500H

(4) 0BC777H

1-7

代码段:主要存放程序中的指令代码。

数据段:主要存放当前运行程序所用的数据。

堆栈段:指明当前运行程序所使用的堆栈区域。

1-8

见P4-P5

1-9

见课件

1-10

见P25-P27

1-11

见P16或者课件

1-12

见P17或者课件

1-13

FFH,Again,next,h_asscii

1-14

见P27或者课件

2-1

(1) 没有,因为8位字节表示的范围:0~255

(2) 没有,都是46H

(3) 因为(34+67H)*3是常数

(4) 以避免与不能以数字开头的标识符混淆

(5) 不能,因为8位字节表示的范围:0~255

(6) 防止发生非法操作

(7) 寻找操作数存储的地址

(8) 有效地址直接包含在指令中

(9) DS

(10) 不正确,因为类型不匹配

2-2

(1) √

(2) ×,小写字母排在大写字母之后

(3) √

(4) ×,不一样多

(5) √

(6) √

(7) ×,没有对齐,因为0403H是奇数地址,不是偶数地址

(8) √

(9) √

(10) √

2-3

(1) 97,61,a

(2) 0DH,0AH

(3) DB,OFFSET

(4) 8843H

(5) DWORD,4,WORD PTR

(6) 3

(7) 立即数寻址,寄存器寻址,存储器寻址

(8) 寄存器寻址,立即数

(9) 4028H

(10) DS,SS

2-4

(1) 255

(2) 0

(3) 94

(4) 239

2-5

(1) 00010010B

(2) 00100100B

(3) 01101000B

(4) 10011001B

2-6

(1) 91

(2) 89

(3) 36

(4) 90

2-7

(1) 0B

(2) 01111111B (3) 10000001B (4) 11000111B

2-8

(1) 8A36H ,CF=0 (2) 4AE4H ,CF=1 (3) 0AE10H ,CF=0 (4) 0ECA9H ,CF=1

2-9

数码0~9:30H ~39H

大写字母A ~Z :41H ~5AH 小写字母 a ~z :61H ~7AH

0DH :回车符CR ,0AH :换行符LF

2-10

Data segment

my1b DB …Personal Computer ? my2b DB 20 my3b DB 14h

my4b DB 00010100B my5w DW 20 DUP(?) my6c EQU 100

my7c EQU < Personal Computer > Data ends

2-11

Data segment NUM=5

DATALIST DW -10, 2, 5, 4, ? Data ends

2-12 2-13

- mov ax, offset mess

;AX=114H

mov ax, type buff+type mess+type vard

;AX=1+1+4=6

mov ax, sizeof varw+sizeof buff+sizeof mess

;AX=2*2+10*1+5*1=19

mov ax, lengthof varw+ lengthof vard

;AX=2+1=3

- - -

- - 0FFH 0FBH o 118 H 00H

l

117 H

10H l 116 H 04H e 115 H 04H mess h 114 H 04H - 113 H - - 112 H 0FFH - 111 H 04H - 110 H 04H - 10F H 04H - 10E H - - 10D H 0FFH - 10C H 04H - 10B H 04H buff - 10A H 04H 12H 109 H - 34H 108 H 0FFH 56H 107 H 46H vard 78H 106 H 45H 04H 105H 10H varb 03H 104H 0AH 56H 103H 43H 78H 102H 42H 12H 101H 41H

varw

34H

100H

2-14 略

2-15

var DD 12345678H

12H

mov bx, word ptr var ;BX=5678H mov cx, word ptr var+2 ;CX=1234H mov dl, byte ptr var ;DL=78H mov dh, byte ptr var+3 ;DH=12H

34H 56H var

78H

2-16

P56 图2-10和图2-11

2-17

(1) 立即数寻址

(2) 直接寻址

(3) 寄存器寻址

(4) 寄存器间接寻址

(5) 寄存器相对

(6) 寄存器相对寻址

(7) 基址变址寻址

(8) 相对基址变址寻址3-1

(1) MOV SI, BYTE PTR 250 或者MOV AL, BYTE PTR 250

(2) DX与CL类型不匹配

(3) 堆栈的操作“后进先出”

(4) MOV BX, OFFSET[SI]汇编时并不知道指令在执行时SI等于什么,所以是

错误的

(5) 结果是0

(6) 目的操作数

(7) 大写=小写AND DFH ;D5位清0

小写=大写OR 20H ;D5位置1

大/小写=小/大写XOR 20H ;D5位求反

(8) 利用CF和OF结果判断

(9) DX.AX

(10) 逻辑与运算规则类似于二进制的乘法。

3-2

(1) ×,因为MOV指令不影响标志位

(2) ×,空操作指令NOP(=XCHG AX,AX)

(3) ×,堆栈是利用主存实现的,MOV BX, [BP+4]也是对的

(4) √

(5) √

(6) ×,ADD指令影响6个状态标志位,而INC 指令不影响进位CF标志,影

响其他状态标志位。

(7) ×,有符号数进行符号扩展,位数加长一倍,数值不变

(8) ×,CMP指令不保存结果

(9) ×,NOT指令不影响标志位

(10) ×,无符号数SHL指令左移一位,就是乘2

3-3

(1) 减少(-2)

(2) DX,(SP)=(SP)+2

(3) 78894111

(4) 26H,PF=0,0BE26H,PF=0

(5) 0FF68H,SF=1

(6) 0FF98H

(7) 0000H

(8) 0,0,0

(9) 01234678H

(10) CL,4

3-4

(1) MOV AX, 100

(2) MOV BYTE PTR V AR, 100

(3) MOV AX, BX

(4) MOV BYTE PTR V AR, AL

(5) MOV DS, AX

(6) MOV AX, WORD PTR V AR

(7) MOV DS, WORD PTR V AR

(8) MOV AX, DS

(9) MOV WORD PTR V AR, DS

3-5

(1) 类型不匹配

(2) IP自动赋值

(3) 段寄存器不能直接赋值

(4) 段寄存器之间不能直接赋值

(5) 类型不匹配

(6) 目的操作数没有指明数据类型

(7) MOV AX, [BX+DI]

(8) MOV 指令中目的操作数不能为立即数

3-6

MOV AX, BX

MOV BX, WORD PTR [DI]

MOV WORD PTR [DI], AX

3-7

后进先出的主存结构,入栈指令:PUSH,出栈指令:POP

3-8

SP=4302H

3-9

执行结果:AL=12H

如果不用XLAT指令,则用MOV AL, BYTE PTR [BX+AL]指令替换XLAT指令3-10

P75-76或者见课件

3-11

(1)

mov ax,80h ;AX=80h

add ax,3 ;AX=83h,CF=0,SF=0

add ax,80h ;AX=103h,CF=0,OF=0

adc ax,3 ;AX=106h,CF=0,ZF=0

(2)

mov ax,100 ;AX=100

add ax,200 ;AX=300,CF=0

(3)

mov ax,100 ;AX=100

add al,200 ;AX=002Ch,CF=1 注:100+200=64h+0C8h=[1]2Ch

(4)

mov al,7fh ;AL=7fh

sub al,8 ;AL=77h,CF=0,SF=0

sub al,80h ;AL=0f7h,CF=1,SF=1

sbb al,3 ;AL=0f3h,CF=0,SF=0

3-12

指令AL CF ZF SF OF PF mov al,89h 89h 不变不变不变不变不变add al,al 12h 1 0 0 1 1 add al,9dh 0afh 0 0 1 0 1 cmp al,0bch (不保存结果)0afh 1 0 1 0 1 sub al,al 00h 0 1 0 0 1 dec al (不影响CF)0ffh 0 0 1 0 1 inc al (不影响CF)00h 0 1 0 0 1

3-13

(1) DX=11H,AX=0F00H

(2) DX=00FFH,AX=0E000H

3-14

(1) ADD DX, BX

(2) ADD AL, BYTE PTR [BX+SI]

(3) ADD WORD PTR [BX+0B2H], CX

(4) ADD WORD PTR V AR, 3421H

(5) ADD AX, 0A0H

3-15

;数据段

buffer1 DD 12345678h

buffer2 DD 56781234h

;代码段

MOV AX, WORD PTR buffer1

MOV DX, WORD PTR buffer1+2

SUB AX, WORD PTR buffer2

SBB DX, WORD PTR buffer2+2

3-16

(1)

mov si,10011100b ;SI=9Ch

and si, 80h ;SI=80h

or si,7fh ;SI=0FFh

xor si,0feh ;SI=01h

(2)

mov ax,1010b ;AX=00001010B

mov cl,2

shr ax, cl ;AX=00000010B,CF=1

shr ax, 1 ;AX=00000100B,CF=0

and ax,3 ;AX=00000000B,CF=0

(3)

mov ax,1011b ;AX=00001011B

mov cl,2

rol ax, cl ;AX=00101100B,CF=0

rol ax, 1 ;AX=00010110B,CF=0

or ax,3 ;AX=00010111B,CF=0

(4)

xor ax,ax ;AX=0,CF=0,OF=0,ZF=1,SF=0,PF=1

3-17

指令AX CF OF SF ZF PF mov ax,1470h 1470h 不变不变不变不变不变and ax,ax 1470h 0 0 0 0 0 or ax,ax 1470h 0 0 0 0 0 xor ax,ax 0000h 0 0 0 1 1 not ax (不影响标志位)0ffffh 0 0 0 1 1 test ax,0f0f0h (不保存结果)0ffffh 0 0 1 0 1

3-18

AND复位某些位(同0与),不影响其他(同1与)

OR置位某些位(同1或),不影响其他(同0或)

XOR求反某些位(同1异或),不影响其他(同0异或)

and bl,11110110b ;BL中D0和D3清0,其余位不变

or bl,00001001b ;BL中D0和D3置1,其余位不变

xor bl,00001001b ;BL中D0和D3求反,其余位不变

3-19

;数据段

bcd db 92h

ascii db ?, ?

;代码段

mov al,bcd

and al,0fh

or al,30h

mov ascii, al

mov ah, bcd

mov cl,4

shr ah,cl

or ah,30h

mov ascii+1, ah

3-20

运算公式:(V AR1*V AR2+V AR3-540)/V AR4

运算结果:商存放在AX中,余数存放在DX中

3-21

X=7

等效乘法指令如下:

MOV X, 7

IMUL X

3-22

MOV SI, AX

MOV CL, 4

SHL SI, CL

MOV BX, AX

SHL BX, 1

SHL BX, 1

ADD AX, SI

ADD AX, BX

3-23

;数据段

num db 6,7,7,8,3,0,0,0 ;被转换数字

tab db '67783000' ;代码表

;代码段

mov cx,lengthof num ;CX=8

mov si,offset num ;SI=num的偏移地址,指向被转换的地址表

mov di,offset tab ;DI=tab的偏移地址,指向代码表

again: mov dl,[si] ;DL=被转换的数字

xchg dl,[di] ;DL=转换的代码

mov [si],dl ;转换后的代码置于被转换数字的地址中

mov ah,2

int 21h ;显示DL中的字符=转换的代码

inc si ;指向下一个被转换数字的地址

inc di ;指向下一个代码的地址

loop again ;循环

运行结果:显示6783000

替换寄存器相对寻址,其代码如下:

;数据段

num db 6,7,7,8,3,0,0,0 ;被转换数字

tab db '67783000' ;代码表

;代码段

mov cx,lengthof num ;CX=8

mov si,0;初始化num的偏移首地址

mov di,0;初始化tab的偏移首地址

again: mov dl,num[si];DL=被转换的数字

xchg dl,tab[di];DL=转换的代码

mov num[si],dl ;转换后的代码置于被转换数字的地址中

mov ah,2

int 21h ;显示DL中的字符=转换的代码

inc si ;指向下一个被转换数字的地址

inc di ;指向下一个代码的地址

loop again ;循环

3-24

运行结果:大写字母转换为小写字母,显示welldone

修改成BX寄存器相对寻址,其代码如下:

;数据段

msg db 'WELCOME','$'

;代码段

mov cx,(lengthof msg)-1

xor bx,bx

again: mov al,msg[bx]

add al,20h

mov msg[bx],al

inc bx

loop again

mov dx,offset msg

mov ah,9

int 21h

3-25

mov array2[bx],ax

add bx,2

4-4

MOV AX, var1

MOV BX,6

MUL BX ;(DX,AX)←var1*6

MOV BX,var2

SUB BX, 7 ;BX←var2-7

DIV BX ;AX←(var1*6)/(var2-7)

ADD AX, var3 ;AX←(var1*6)/(var2-7)+var3

MOV var4, AX ; var4←(var1*6)/(var2-7)+var3

随堂测试

设x,y,z,v均为16位带符号数,分别装在X,Y,Z,V存储单元中,编写指令代码段,实现(v-(x*y+z-540))/x 运算公式,商存储在W存储单元中,余数在W+2存储单元中。

答案:

MOV AX,X

IMUL Y ;(DX,AX)←x*y

MOV CX,AX

MOV BX,DX ;(BX,CX)←x*y

MOV AX,Z

CWD ;(DX,AX)←z扩展成32位

ADD CX,AX

ADC BX,DX ;(BX,CX)←x*y+z

SUB CX,540

SBB BX,0 ;(BX,CX)←x*y+z-540

MOV AX,V

CWD ;(DX,AX)←v扩展成32位

SUB AX,CX

SBB DX,BX ;(DX,AX)←v-( x*y+z-540)

IDIV X ;v-( x*y+z-540),AX←商,DX←余数

MOV W, AX ;W←商

MOV W+2, DX ;W+2←余数

4-10

(1) CMP DX, DI

JA above

(2) CMP BX, SI

JG greater

(3) CMP BX, 0

JE zero

(4) CMP BX, SI

JO overflow

(5) CMP SI, BX

JLE less_eq

(6) CMP DI, DX

JBE below_eq

4-13

思路:(1)BX←AX,BX逻辑左移1位,将AX的符号位移入CF;

(2)RCL DX, 1 将AX的符号位移入DX;

(3)重复(1)~(2)16次。

MOV CX, 16

again:MOV BX, AX

SHL BX, 1

RCL DX, 1

LOOP again

或者3.20题目思想:

MOV DX, AX

MOV CL, 15

SAR DX, CL

4-18

思路同4-13:

MOV CX, 3

again:SHL AX, 1

RCL DX, 1

LOOP again

4-15 编程:先提示输入数字“Input Number:0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!”,继续等待输入数字。

DA TA SEGMENT

inputstring db 'Input Number:0~9', 13, 10, '$'

errorstring db 'Error!', 13, 10, '$'

DA TA ENDS

CODE SEGMENT

ASSUME DS:DA TA,CS:CODE

START:MOV AX, DATA

MOV DS, AX

MOV DX,OFFSET inputstring

MOV AH, 09H

INT 21H

INPUT:MOV AH, 07H ;键盘输入字符到AL,无回显

INT 21H

CMP AL,'0' ;小于0,转移,显示'Error!'

JB ERROR

CMP AL,'9' ;大于9,转移,显示'Error!'

JA ERROR

MOV DL,AL ;0~9数字,回显/输出到屏幕

MOV AH, 02H

INT 21H

JMP EXIT

ERROR: MOV DX,OFFSET errorstring ;输出'Erro

MOV AH, 09H

INT 21H

JMP INPUT

EXIT: MOV AH, 4CH

INT 21H

CODE ENDS

END START

4-26 以MOV指令为例,说明串操作指令的寻址特点,并用MOV和ADD等指令实现MOVSW的功能(假设DF=0)。

DA TA SEGMENT

srcmsg DB 'srcstring=','$'

srcstring DB 'hello everybody!'

srcend DB '$'

stringlength EQU (lengthof srcstring)/2

dstmsg DB 'dststring=','$'

dststring DB stringlength dup (?),'$' DA TA ENDS

CODE SEGMENT

ASSUME DS:DA TA, CS:CODE

START:MOV AX, DATA

MOV DS, AX

MOV ES, AX

MOV DX, OFFSET srcmsg

MOV AH, 09H

INT 21H

MOV DX, OFFSET srcstring

MOV AH, 09H

INT 21H

MOV CX, stringlength

MOV BX, 0

CLD

AGAIN : MOV AX, WORD PTR srcstring[BX] MOV WORD PTR dststring[BX], AX

ADD BX, 2

LOOP AGAIN

MOV DX, OFFSET dstmsg

MOV AH, 09H

INT 21H

MOV DX,OFFSET dststring

MOV AH, 09H

INT 21H

MOV AH, 4CH

INT 21H

CODE ENDS

END START

5-7

DA TA SEGMENT

DB 100 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME DS:DA TA,CS:CODE ;输入字符(输入到AL并回显)子程序READC PROC

PUSH AX

MOV AH, 01H

INT 21H

START:MOV AX, DATA

MOV DS, AX

AGIAN:CALL READC

CMP AL,1BH

JZ DONE

MOV BL,AL

MOV AL,':'

CALL DISPC

MOV AL,BL

MOV CL,4

ROL AL,CL

CALL HTOASC

CALL DSIPC

MOV AL, BL

CALL HTOASC

CALL DSIPC

CALL DSIPCRLF

JMP AGAIN

DONE: MOV AH, 4CH

INT 21H

;显示输出转换的ASCII码值子程序HTOASC PROC

PUSH AX

AND AL,OFH

OR AL,30H

CMP AL,39H

JBE HTOEND

ADD AL,07H HTOEND: POP AX

RET

HTOASC ENDP

CODE ENDS

END START

POP AX

RET

READC ENDP

;显示输出字符(入口参数DL=字符)子程序DISPC PROC

PUSH AX

PUSH DX

MOV DL, AL

MOV AH, 02H

INT 21H

POP AX

POP DX

RET

DISPC ENDP

;显示输出换行、回车字符(入口参数DL=字符)子程序,同时显示出“H”DSIPCRLF PROC

PUSH AX

PUSH DX

MOV DL,'H'

MOV AH, 02H

INT 21H

MOV DL,ODH

MOV AH, 02H

INT 21H

MOV DL,OAH

MOV AH, 02H

INT 21H

POP AX

POP DX

RET

DSIPCRLF ENDP

5-8

;主程序

MOV AX, 0086H

CALL DISPBD

MOV DL, 'B'

MOV AH, 02H

INT 21H

;子程序

DISPBD PROC

PUSH CX

MOV CX, 8

DBD:ROL AL, 1

PUSH AX

AND AL, 01H

ADD AL, 30H

CALL DISPC

POP AX

LOOP DBD

RET

DISPBD ENDP

;显示输出字符(入口参数AL=字符)子程序DISPC PROC

MOV DL, AL

MOV AH, 02H

INT 21H

RET

DISPC ENDP 5-11

;计算字节校验和的子程序

;入口参数:DS:BX=数组的段地址:偏移地址;CX=元素个数

;出口参数:AL=校验和

CHECKSUM PROC

XOR AL,AL

SUM:ADD AL,[BX]

INC BX

LOOP SUM

RET

CHECKSUM ENDP

5-13

;数据段

V AR DB 'THIS IS A TEST!'

;主程序

MOV AX,OFFSET V AR

MOV CX,SIZEOF VAR

CALL DISPMEM

;子程序

;入口参数:DS:AX=主存待显示区域的段地址:偏移地址;CX=字节个数

DISPMEM PROC

PUSH BX

MOV BX, AX

DISPM1: MOV DL, [BX]

MOV AH,02H

INT21H

INC BX

LOOP DISPM1

POP BX

RET

DISPMEM ENDP

汇编语言基础练习题目

、填空 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.1(第9页) (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)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 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.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后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)mov20h,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 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数 11010011,01110111,10000011,00101111 ,10101010 查看正确答案 无符号数: 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 2 十六进制运算 1A52H+4438H ,3967H-2D81H,37H×12H ,1250H×4H 查看正确答案 5E8AH,0BE6H,3DEH,4940H 3 将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示) 29+53,73-24,-66+82 ,-102-15 查看正确答案 00011101+00110101=01010010=52H=82 01001001+11101000=00110001=31H=49 10111110+01010010=00010000=10H=16 10011010+11110001=10001011=8BH= -117 4 用压缩BCD码计算(结果用二进制、BCD码、十进制表示) 29+53,73-24,66+18 ,132+75 查看正确答案 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 5 符号位扩展(字节扩展为字,字扩展为双字) 20A3H,94H ,3456H ,7FH ,EC00H 查看正确答案 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。 查看正确答案 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 写出下列十六进制数所能代表的数值或编码: (1)38H (2)FFH (3)5AH (4)0DH

汇编语言题库

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

汇编语言程序设计(钱晓捷)课后答案

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(01) 2.1 (1)AX=1200h (2)AX=0100h (3)AX=4C2Ah (4)AX=3412h (5)AX=4C2Ah (6)AX=7856h (7)AX=65B7h 2.2(1) 两操作数类型不匹配 (2) IP指令指针禁止用户访问 (3) 立即数不允许传给段寄存器 (4) 段寄存器之间不允许传送 (5) 两操作数类型不匹配 (6) 目的操作数应为[ BP ] (7) 源操作数应为[BX+DI] (8) 立即数不能作目的操作数 2.3 lea bx,table ;获取table的首地址,BX=200H mov al,8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H 2.4 堆栈是一种按“先进后出”原则存取数据的存储区域。 堆栈的两种基本操作是压栈和出栈,对应的指令是PUSH和POP。 2.5 mov ax,8057h push ax mov ax,0f79h push ax pop bx ;bx=0f79h pop [bx] ;DS:[0f79h]=8057h 2.6 AL=89h CF ZF SF OF PF AL=12h 1 0 0 1 1 AL=0afh 0 0 1 0 1 AL=0afh 1 0 1 0 1 AL=00h 0 1 0 0 1 AL=0ffh 0 0 1 0 1 AL=00h 0 1 0 0 1 2.7 W=X+Y+24-Z

2.8 (1)ADD DX,BX (2)ADD AL,[BX+SI] (3)ADD [BX+0B2H],CX (4)ADD WORD PTR [0520H],3412H (5)ADD AL,0A0H 2.9;为了避免与操作数地址混淆,将题中X,Y,Z,V 字操作数改为A,B,C,D mov ax,X ;ax=A imul Y ;dx,ax = A*B (将操作数看作符号数,以下同) mov cx,ax mov bx,dx ;bx,ax <-- dx,ax =A*B mov ax,Z ;ax = C cwd ;dx,ax =C (扩展符号后为双字) add cx,ax adc bx,dx ;bx,cx <-- bx,cx+dx,ax=A*B+C sub cx,540 sbb bx,0 ;bx,cx<-- A*B+C-540 mov ax, V ;ax= D cwd ;dx,ax= D (扩展符号后为双字) sub ax, cx sbb dx, bx ;dx,ax = dx,ax - bx,cx = D-(A*B+C-540) idiv X ;运算结果:[D-(A*B+C-540h)]/A ;ax存商,dx存余数 2.10;(1)xchg的操作数不能是立即数 (2不能对CS直接赋值 (3)两个操作数不能都是存储单元 (4)堆栈的操作数不能是字节量 (5)adc的操作数不能是段寄存器 (6)没有确定是字节还是字操作 (7)in不支持超过FFH的直接寻址 (8)out只能以AL/AX为源操作数 第二章(02) 2.11; 指令AX的值CF OF SF ZF PF Mov ax,1407h1470h----- And ax,ax1470h00000 Or ax,ax1470h00000 Xor ax,ax000011 Not ax0ffffh----- Test ax,0f0f0h0ffffh00101 注意: 1. mov, not指令不影响标志位 2. 其他逻辑指令使CF=OF=0, 根据结果影响其他标志位。

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

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

完整版汇编语言试题及答案..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 无符号数: 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 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 0000000100110010+01110101=00 00000110100111+00000110 =0000001000000111=0207H=207 5 000020A3H,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 (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 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 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H

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

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 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.8位无符号整数的表示范围为0~255,写成16进制形式为00H~__________;8位有符号整数的表示范围为-128~+127,写成16进制形式为__________~__________。 2.8086/8088分段管理存储空间,但每段容量最大不超过__________。 3.逻辑地址为F000:100的存储单元,其物理地址是__________。 4.用来指示堆栈栈顶的偏移地址的是__________寄存器。 5.若要测试AL寄存器D4、D2、D0位是否都为0,则可使用__________指令语句(含操作数),以产生转移条件。这条指令执行后将利用标志位__________实现转移。 6.若定义:bdata db2dup(1,2,2dup(3),4),则dbata变量前5个单元从低地址到高地址的数据依次是__________。 7.假设varw是一个16位变量,则指令“mov varw,ax”的目的操作数的寻址方式是__________。 二、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在题后的括号 内。 1.对汇编语言源程序进行翻译,形成OBJ文件的是 A.汇编程序 B.连接程序 C.编辑程序 D.调试程序[] 2.下列各个8位二进制数的补码中,真值最大的是 A.10001000 B.11111111 C.00000000 D.00000001[] 3.MASM语句中,表达常数不正确的形式是 A.01101001B B.A346H C.’A’ D.5600[] 4.如果SS=600H,则说明堆栈段物理地址起始于 A.60H B.600H C.6000H D.60000H[] 5.dw50dup(?)预留了存储空间的字节数是 A.25 B.50 C.100 D.200[] 6.下列指令中有操作数在代码段中的是 A.mov ax,34h B.add ax,bx C.inc word ptr[34h] D.cmp ax,[34h][] 7.假设AL=5,要使得AL=0FAH,应执行的指令是 A.not al B.and al,0fh C.xor al,0f0h D.or al,0fh[] 8.设置逻辑段应该采用的一对伪指令是 A.segment/ends B.start/end start C.proc/endp D.macro/endm[] 9.条件转移指令JNE条件是 A.CF=0 B.CF=1

汇编语言试题及答案.

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

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

汇编语言课后习题答案郑 晓薇后的 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位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

汇编语言期末复习题库

一、填空题 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分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址 B.段内转移间接寻址 C.段间转移直接寻址 D.段间转移间接寻址 2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS 指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP 指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JN L指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JN B指令 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的字节 D.附加段中偏移量为3236H的字节 9.执行如下程序:()

相关文档
最新文档