文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编语言与接口技术 习题解答

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

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

习题一解答:

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

1.9(1)[S1+S2]补=[S1]补+[S2]补=00010110+00100001=00110111,无溢出

[S1-S2]补=[S1]补+[-S2]补=00010110+11011111=11110101,无溢出

(2)[S1+S2]补=[S1]补+[S2]补=00010110+11011111=11110101,无溢出

[S1-S2]补=[S1]补+[-S2]补=00010110+00100001=00110111,无溢出

(3)[S1+S2]补=[S1]补+[S2]补=01100100+00011110=10000010,有溢出

[S1-S2]补=[S1]补+[-S2]补=01100100+11100010=01000110,无溢出

(4)[S1+S2]补=[S1]补+[S2]补=10011100+11100010=01111110,有溢出

[S1-S2]补=[S1]补+[-S2]补=10011100+00011110=10111010,无溢出

习题二解答:

2.1答:8086有哪些寄存器组?各有什么用途?

①通用寄存器AX、BX、CX、DX

它既可用作16位寄存器,又可将它拆成高、低8位,分别作为两个独立的8位寄存器使用。AX称累加器。常用于存放算术逻辑运算中的操作数,所有I/O指令都使用累加器与外设接口传送数据;BX称基址寄存器。常用来存放访问内存时的基地址或用作间接寻址时的地址寄存器。CX称计数寄存器。在循环和串操作指令中用作计数器,指令执行后CX寄存器中的内容会自动改变。DX称数据寄存器。在I/O指令中用来存放端口的地址,在乘除指令中用作辅助寄存器。

② 4个专用寄存器

SP堆栈指针寄存器。它在堆栈中存放栈顶偏移指针,;BP基址指针寄存器。一般也用来存放访问内存时的基地址;SI源变址寄存器,DI目的变址寄存器。它们常常用在变址寻址方式中。

③ 4个段寄存器

CS代码段寄存器。存放当前程序所在段的段基址;DS数据段寄存器。存放当前程序所用数据段的段基址;SS堆栈段寄存器。存放当前程序所用堆栈段的段基址,ES附加段寄存器。存放当前程序所用辅助数据段的段基址。

④指令指针寄存器IP

16位的指令指针寄存器IP用于存放下一条执行指令的偏移地址。

⑤标志寄存器FR

它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。

2.2答:8086流水线技术是利用8086内部指令队列,使8086/8088的执行部件和总线接口部件并行工作。其工作过程如下:当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节,总线接口部件就自动执行一次指令周期,从内存中取出后续的指令代码放入队列中。当执行部件需要数据时,总线接口部件根据执行部件给出的地址,从指定的内存单元或外设中取出数据供执行部件使用。当运算结束时,总线接口部件将运算结果送入指定的内存单元或外设。当指令队列空时,执行部件等待,直到有指令为止。若总线接口部件正在取指令,执行部件此时正好发出访问总线的请求,则必须等总线接口部件取指令完毕后,该请求才能得到响应。一般情况下,程序按顺序执行,但当遇到跳转指令时,总线接口部件就使指令队列复位,从新地址取出指令,并立即传给执行部件去执行。

所以,8086流水线技术减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度,也降低了对存储器存取速度的要求。

2.3答:为了尽可能使8086/8088CPU适应各种使用场合,8086/8088CPU通常有两种工作模式:最大工作模式和最小工作模式。

最小工作模式,就是在系统中只有8086或者8088一个微处理器。在这种系统中,所有的控制信号直接由8086或8088产生,因此,系统中的总线控制逻辑电路被减到最少。

最大工作模式,是相对最小工作模式而言。在此工作模式系统中,一般包含两个或两个以上微处理器,但是主处理器只有一个,其他的处理器均为协处理器,协助主处理器工作。

2.4答:逻辑地址是由段基址和偏移地址两部分构成,通常由编程人员在指令中使用。8086系统中任何一个存储单元对应20位的物理地址,都是由逻辑地址转换得来的。

8086存储器中的物理地址是由内部总线接口部件BIU——地址加法器产生。由地址加法器把16位段寄存器的内容转换为20位物理地址,即段基址左移4位后,再加上有效偏移量地址。

物理地址=CS×4+IP=40000H+2200H=42200H

2.5答:8086CPU为了能够对存储器进行字节和字的访问,在技术上将1M字节的存储器空间分成两个512K字节(219)的存储体。一个存储体中包含偶数地址,该存储体被称为偶存储体;另一个存储体中包含奇数地址,该存储体被称为奇存储体,两个存储体之间采用交叉编址方式,然后通过A0 和BHE组合就可以确定对哪一组存储体进行访问,是对字节还是对字进行访问。

2.6答:在存储器中,对要存放的字,其低位字节可以从奇数地址开始存放,也可以从偶数地址中开始存放;如果从奇数地址开始存放称为非规则存放,按非规则存放的字称为字不对准存放。从偶数地址中开始存放称为规则存放,按规则存放的字称为字对准存放。

使用字对准存放要在一个总线周期完成,用字不对准存放则需要两个总线周期才能完成。所以为了加快程序运行速度,编程时应尽可能使用字对准存放。

习题三解答:

3.6答:(1)MOV CX, BX

(2)MOV AX, 1234H

(3)MOV AX, word ptr[20H]

(4)MOV byte ptr[BX], 20H

3.7答:(1)EA=3000H

(2)EA=1200H

(3)EA=3300H

(4)EA=4200H

(5)EA=4500H

3.8答:(1)立即数寻址

(2)直接寻址

(3)寄存器间接寻址

(4)基址变址寻址

(5)相对基址变址寻址

(6)寄存器寻址

3.9答:(1)段内间接寻址

(2)段内间接寻址

(3)段间间接寻址

3.10答:(1)直接寻址PA=10200H

(2)寄存间接寻址PA=10010H

(3)跨段寄存器间接寻址PA=15010H

(4)跨段寄存器间接寻址PA=20010H

(5)寄存器间接寻址PA=200A0H

(6)寄存器相对址寻址PA=0110H

(7)基址变址寻址PA=10110H

(8)相对基址变址寻址PA=10210H

(9)寄存器间接寻址PA=10100H

3.12答:解:(1)AX=0100H

(2)AX=1020H

(3)AX=1020H

(4)AX=5030H

(5)AX=2010H

(6)AX=2010H

(7)AX=1020H

3.13答:(1)SI=0320H

(2)BP=1320H

(3)DI=0310H

(4)X=0FFF0H

3.15答:(1)测试AL中1、3、5位是否均为“1”

(2)对32位数(高位在DX,低位在AX)求补码

3.16答:(1)XOR AL ,2AH

(2)MOV BL ,AL

NOT BL

TEST BL, 2AH

JE L1

MOV AL ,0

.

.

L1: MOV AL , 1

(3)MOV CL, 4

ROL AL, CL

ROL BL, CL

XCHG AL, BL

(4)PUSHF

POP AX

(5)PUSHF

POP AX

AND AX,0FEFFH

PUSH AX

POPF

(6)略

(7)STD

MOV AX, DS

MOV ES, AX

MOV SI, 0163H

MOV DI, 01B3H

MOV CX, 100

REP MOV SB

(8)MOV AL,A

IMUL B

MOV C,AL

MOV C+1 ,AH

习题四解答:

4.4答:

4.5答:(1)STR1的偏移地址为: 100H

(2)NUM为10

(3)STR2+3的存储单元内容为79H (即第四个字符’O’所对应的ASIC码) 4.6答:分别为:3CH ,1EH,0FH

4.9答:(1)(AX)=1234H

(2)(AX)=5678H

(3)(AX)=5678H

4.10答:DATA SEGMENT

ARRAY EQU THIS WORD

ARRAY DB 100 DUP (?)

DATA ENDS

4.11答:(1)ARRAY DB 12H, 34H, 56H, 0ABH

(2)DARRAY DW 1234H, 5678H, 0ABCDH

(3)BCD DW 1234

(4)STR DB ‘STRING’

(5)DATA1 SEGMENT

DB 12H, 34H,‘A’,‘B’,‘C’

DW 1234H, 5678H, 0ABCDH

DB 5 DUP (?)

DATA1 ENDS

4.14答:(1)LEA BX ,DATA1

(2)MOV CL ,BYTE PTR[DAT2+2]

(3)MOV BYTE PTR[BUF1+9],11H

(4)LEN1=13, LEN2=7

(5)MOV CX, DAT2-DAT1

lEA SI , DAT1

LEA DI , BUF2

MOV AX , DS

MOV ES , AX

CLD

REP MOVSB

4.15答:LEA SI ,STR

MOV DH ,[SI]

MOV DL ,[SI+6]

MOV DH, STR

MOV DL, STR+7

习题五解答:

5.7答:(1)将一字节数据和其补码逻辑乘;

(2)AL的内容为:89H,NUM的内容为:10H。

5.8答:(1)求DAT的平方,并将结果放到DAT+1中。

(2)DAT+1的内容为51H

5.9答:(1)将DAT第0、2位清0,1、3、7位置1;

(2)程序执行后DA T的内容为DAH。

5.12答:

(1)对BUF的内容清0,遇到BUF的内容为0FF则停止清0。

(2)求BUF中的前10个数,结果放到AL中。

(3)求DAT中的前10个数,结果放入BUF。

(4)从BLOCK开始的100个字节查找第一个和KEY相等的元素,找到就将结果放到ADDR 中,否则DI置0。

5.13答:

判断DA T如果为0,则将AL放到RES中;如果为正,将DA T的值加1,如果为负,将DAT的值减1,放到RES中。

5.14答:

(1)求0到9的和,结果放到预留的空间RES中

(2)将AX置0

(3)求1到99的和结果放到AX中。

(4)求两个相邻数的积,结果与前面的数相加一起保存到DX中。

(5)AX的值顺序逻辑右移,每次移一位,,同时将BX的值加1,直到AX的值为0。

5.17答:

DA TA SEGMENT

DAT DW 6DUP(?)

X DW 100

Y DW 200

Z DW 150

DA TA ENDS

STACK SEGMENT STACK

DW 200 DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,DATA

MOV DS,AX

MOV AX,X

MOV BX,Y

ADD AX,BX

MOV BX,Z

SUB AX,BX

MOV DA T+6,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

DA TA SEGMENT

DA T1 DB ?

DA T2 DB ?

DA T3 DB ?

DA TA ENDS

STACK SEGMENT STACK

DB 200 DUP(?)

STACK ENDS

CODE SEGMENT

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

MOV DS,AX

MOV AL, 7BH

MOV BL,AL

AND BL,07H

MOV DAT1,BL

MOV CL,3

SHR AL,CL

MOV BL,AL

AND BL,07H

MOV DAT2,BL

MOV CL,2

SHR AL,CL

MOV DAT3,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

5.21答:

DA TA SEGMENT

DA T1 DW ‘A>B’

DA T2 DW ‘A

A D

B 200

B DB 100

DA TA ENDS

STACK SEGMENT STACK

DB 100DUP(0)

STACK ENDS

CODE SEGMENT

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

MOV DS,AX

MOV BX,B

CMP AX,BX

JB NEXT

MOV DX,DAT2

MOV AH,9

INT 21H

NEXT: MOV DX,DA T1

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

5.26答:

DA TA SEGMENT

NUMBER 1,2,3,4,5

TABLER A,B,C,D,E

DA TA ENDS

STACK SEGMENT STACK

DB 100DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME DS:DA TA,CS:CODE,SS:STACK START:MOV BL,NUMBER

XOR BH,BH

SHL BX,1

JUM TABLE[BX]

A:MOV DL,‘1’

JMP DISPLAY

B:MOV DL,‘2’

JMP DISPLAY

C:MOV DL,‘3’

JMP DISPLAY

D:MOV DL,‘4’

JMP DISPLAY

E:MOV DL,‘5’

JMP DISPLAY

DISPLAY:MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

习题六解答:

6.9答:

Move macro to,from,n

Lea si,from

Lea di,to

Mov cx,n

Rep movsb

endm

6.10答:

Clrb macro n,cfil

Mov cx,n

Mov al,’’

Lea dl,cfil

Rep stosb

endm

6.11答:

Str=”String”

Rept 10

Db str

endm

6.12答:

Move macro x

Ifidn ,<555>

Mov terminal,0

Else

Mov terminal,1

Endif

Endm

6.13答:

Mov al,divd

Ife sign

Mov ah,0

Div scale

Else

Cbw

Idiv scale

Endif

Mov result,al

习题七解答:

7.1 答:

ARM 处理器有7个基本工作模式:

1)用户模式(User):非特权模式,正常程序执行的模式,大部分任务执行在这种模式下;

2)快速中断模式(FIQ):当一个高优先级(fast)中断产生时将会进入这种模式,用于高速数据传输和通道处理;

3)外部中断模式(IRQ):当一个低优先级(normal)中断产生时将会进入这种模式,用于通常的中断处理;

4)管理模式(Supervisor):当复位或软中断指令执行时将会进入这种模式,是一种供操作系统使用的一种保护模式;

5)数据访问中止模式(Abort): 当数据或指令存取异常时将会进入这种模式,用于虚拟存储及存储保护;

6)未定义模式(Undef): 当执行未定义指令时会进入这种模式,可用于支持硬件协处理器的软件仿真;

7)系统模式(System): 使用和User模式相同寄存器集的特权模式,但是运行的是特权级的操作系统任务。

ARM处理器工作状态:

1)ARM状态: 处理器执行32位的字对齐的ARM指令;

当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。

2)Thumb状态: 处理器执行16位的半字对齐的Thumb指令。

当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM 状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM指令集和Thumb指令集各有其优点,若对系统的性能有较高要求,应使用32位的存储系统和ARM指令集,若对系统的成本及功耗有较高要求,则应使用16位的存储系统和Thumb指令集。当然,若两者结合使用,充分发挥其各自的优点,会取得更好的效果。

7.2答:

ARM7TDM后缀TDMI的含义如下:

M:表示内嵌硬件乘法器(Multiplier);

T:表示支持Thumb指令集;

I:表示支持片上断点和调试点;

D:表示支持片上调试(Debug)。

7.3答:

ARM处理器将存储器看做是一个从0开始的线性递增的字节集合,指令和数据共用一条32 位总线。

7.4答:

当控制位I置位时,IRQ中断被禁止,否则允许IRQ中断使能;当控制位F置位时,FIQ中

断被禁止,否则允许FIQ中断使能。习题八解答:

8.2答:

.section .rodata

.align 3

.LC0:

.ascii "%d\000"

.align 3

.LC1:

.ascii "%c\000"

.align 3

.LC2:

.ascii "%s\000"

.text

.align 2

.global main

.type main, %function

main:

mov ip, sp

stmfd sp!, {fp, ip, lr, pc}

sub f p, ip, #4

sub s p, sp, #16

ldr r0, .L2

ldr r1, [fp, #-16]

bl printf

ldrb r3, [fp, #-17] @ zero_extendqisi2

ldr r0, .L2+4

mov r1, r3

bl printf

sub r3, fp, #28

ldr r0, .L2+8

mov r1, r3

bl printf

mov r0, r3

ldmea fp, {fp, sp, pc}

.L3:

.align 2

.L2:

.word .LC0

.word .LC1

.word .LC2

.size main, .-main

8.3答:

PXA270处理器提供了一个实时时钟模块RTC,RTC模块提供了如下的功能:

● Timer 计数器功能;

● Wristwatch 手表功能;

● Stopwatch 秒表计时功能;

● Periodic interrupt 周期中断;

● Trimmer 调整RTC时钟频率。

PXA270 采用32.768kHz 晶振来驱动RTC 模块。但是这个晶振在硬件复位后是被屏蔽的,系统使用13MHz 晶振作为时钟源。因此需要软件来设置寄存器,使这个晶振工作。

8.4答:

MMU的实现过程,实际上就是一个查表映射的过程。建立页表(translate table)是实现MMU 功能不可缺少的一步。页表是位于系统的内存中,页表的每一项对应于一个虚拟地址到物理地址的映射。每一项的长度即是一个字的长度(在ARM中,一个字的长度被定义为4B)。页表项除完成虚拟地址到物理地址的映射功能之外,还定义了访问权限和缓冲特性等。

8.5答:

.section .rodata

.align 3

.LC0:

.ascii "%s\000"

.align 3

.LC1:

.ascii "%s\n\000"

.text

.align 2

.global main

.type main, %function

main:

mov ip, sp

stmfd sp!, {fp, ip, lr, pc}

sub f p, ip, #4

sub s p, sp, #4

ldr r0, .L2

ldr r1, [fp, #-16]

bl scanf

ldr r0, .L2+4

ldr r1, [fp, #-16]

bl printf

mov r0, r3

ldmea fp, {fp, sp, pc}

.L3:

.align 2

.L2:

.word .LC0

.word .LC1

.size main, .-main

习题九解答:

9.1答:接口是微机与外设的通道。基本功能是在系统总线和输入输出设备之间传输信号。

9.3答:有端口统一编址和端口独立编制址。

9.5答:固定式和可选式。

9.6答:选择芯片。

9.9答:中断类型与它所对应的中断服务程序入口地址之间的换算表。

9.12答:ICW1=00011001

9.15答:存储器和外设直接交换数据。

习题十解答:

10.1答:并行接口是一次传送多位数据,串行接口是一次传送一位。

10.3答:8255A有三种工作方式。

10.5答:

Mov al,90H

Mov dx,1F3H

Out dx,al

10.8答:

(1)异步方式初始化程序

在接通电源时,8251A能通过硬件电路自动进入复位状态。为了保证在送方式和命令字之前8251A已正确复位,首先应向8251A的控制口连续写入三个全“0”,然后再向该端口送入一个复位字(40H),用软件命令使8251A可靠复位。其次才能向它写入方式字和命令字,它们都被写入控制口。8251A是通过写入次序来区分它们的,先写入方式字,然后,再写命令字。

(2)同步方式初始化程序

同步方式时的初始化程序,开始和异步方式一样,向控制口写入三个“0”和软件复位命令字(40H),接着再向控制口写入方式字,然后再送同步字符(常用16H作为同步字符),最后,再写命令字。

10.9答:

MOV DX,0FF2H

MOV AL,00H

OUT DX,AL

OUT DX,AL

OUT DX,AL

MOV AL,40H

OUT DX,AL

MOV AL,7AH

OUT DX,AL

REVTIME

MOV AL,15H

OUT DX,AL

习题十一解答:

11.2答:每个GPIO引脚可分别编程设置为输出或输入方式,作输入时可在上升或下降沿时产生中断。多数GPIO都有附加的功能,可编程设置它们为第二功能用于各种外围功能,如充当串口的输出/输入、LCD 控制器的数据通道口、将处理器从睡眠中唤醒的功能。

10.3答:PXA270有3个通用异步接收/发送器(UART):全功能UART(FFUART)、蓝牙UART(BTUART)和标准UART(STUART),串口可以通过DMA和可编程I/O控制,它们的编程方法相同。

10.5答:通过转换表,可以实现。在转换表中定义了不同大小的物理内存的属性和映射方式。

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 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章基础知识 检测点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)在存储器中指令和数据没有任何区别,都是二进制信息。

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

微机原理与汇编语言复习题及参考答案 ——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 分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数 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. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(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的字节

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

汇编语言程序设计(第二版) 钱晓捷习题答案 第二章(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, 根据结果影响其他标志位。

汇编语言课后习题答案

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

汇编语言习题答案

第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.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章基础知识 检测点(第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.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

汇编语言习题以及答案

习题 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、用户为了解决自己的问题,用汇编语言所编写的程序,称为___________。 A 、目标程序B、源程序C、可执行程序D、汇编程序 2、无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是___________。 A、ADD BH,01H B、OR BH,01H C、XOR BH,01H D、TEST BH,01H 3、设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1,执行SBB AL,[SI]后,正确的结果是___________。 A、AL=5FH SF=1 CF=1 B、AL=60H SF=1 CF=0 C、AL=5FH SF=0 CF=1 D、AL=60H SF=0 CF=0 4、设AX=1000H NEG AX NOT AX 执行上述指令后,正确的结果是___________。 A、AX=1001H B、AX=0FFFH C、AX=1000H D、AX=0111H 5、CBW指令的功能是___________。 A、把源操作数的符号位扩展到目的操作数中 B、把AL中的符号位扩展到AH中 C、把AH中的符号位扩展到AL中 D、把AX中的符号位扩展到DX中 6、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是 A、指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、指令AND AX,OFH执行后,分离出AL低四位 D、NOT AX,执行后,将AX清0 7、执行下列指令序列后,正确的结果是___________。 MOV AL,81H ADD AL,AL ADC AL,AL A、AL=05H B、AL=204H C、AL=04H D、AL=205H 4、TEST DL,55H JE NEXT …. NEXT:…… 上述程序段,执行JE指令时能产生转移的情况是。 A、DL>55H B、DL<55H C、DL=55H D、DL中第0、2、4、6位均为0 5、设CL=05H,要获得CL=0AH,可选用的指令是。 A、XOR CL,0FH B、NOT CL C、OR CL,0AH D、AND CL,0FH 填空

汇编语言(王爽)第二版课后题全答案

add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H Microsoft(R) Windows DOS (C)Copyright Microsoft Corp 1990-2001. C:\DOCUME~1\ADMINI~1>debug -a 0C1C:0100 mov ax,f4a3 0C1C:0103 mov ah,31 0C1C:0105 mov al,23 0C1C:0107 add ax,ax 0C1C:0109 mov bx,826c 0C1C:010C mov cx,ax 0C1C:010E mov ax,bx 0C1C:0110 add ax,bx 0C1C:0112 mov al,bh 0C1C:0114 mov ah,bl 0C1C:0116 add ah,ah 0C1C:0118 add al,6 0C1C:011A add al,al 0C1C:011C mov ax,cx 0C1C:011E -r AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0100 NV UP EI PL NZ NA PO NC 0C1C:0100 B8A3F4 MOV AX,F4A3 -t AX=F4A3 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0103 NV UP EI PL NZ NA PO NC 0C1C:0103 B431 MOV AH,31 -t AX=31A3 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0C1C ES=0C1C SS=0C1C CS=0C1C IP=0105 NV UP EI PL NZ NA PO NC

汇编语言期末考试试题及答案

汇编语言模拟试题及答案 一,单项选择题 (在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内,每小题1分,共20 分) 1.指令JMP FAR PTR DONE 属于参考答案为:C A .段内转移直接寻址 B ?段内转移间接寻址 C .段间转移直接寻址 D ?段间转移间接寻址 [解析]略 2.下列叙述正确的是参考答案为:C A ?对两个无符号数进行比较采用CMP 指令,对两个有符号数比较用CMPS 指令 B ?对两个无符号数进行比较采用CMPS 指令,对两个有符号数比较用CMP 指令 C .对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL 指令 D .对无符号数条件转移采用JGE/JNL 指令,对有符号数条件转移用JAE/JNB 指令 [解析]对于无符号数和有符号数的比较都采用CMP 指令; CMPS 指令是串比较指令; 对两个无符号数的条件转移指令应是:JAE、JNB、JBE、JNA;对两个有符号数的条件转 移指令应是:JGE、JNL、JLE、JNG。 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH ,请给出这个数 据区最末一个字单元的物理地址是参考答案为:C A . 12CSBH B . 12B6BH C. 12C59H D . 12BFEH [解析]末字与首字相隔(128- 1 =) 127个字,且每个字占用2个字节,因此末字单元的物理地址应为: 首字单元的物理地址+( 128 —1) >2 即12ABHX 10H + OOABH +( 128 —1) X2 = 12C59H。 4.在下列指令的表示中,不正确的是参考答案为:C A . MOV AL ,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D . MUL CL [解析]当只有一个存储器操作数时,这个操作数的类型不明确,例如选项C中的 [BX] ,没有明确的说明访问该存储单元的类型,此时存储器操作数就必须需用类型说明,如DEC BYTE PTR [BX] 或DEC WORD PTR [BX] 但是在题目的选项C 中,没有指出存储器操作数类型,所以该指令是不正确的;而其它选项中的指令均是正确的。 5.在进行二重循环程序设计时,下列描述正确的是参考答案为:A A .外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B ?外循环初值应置外循环之内;内循环初值应置内循环之内 C ?内、外循环初值都应置外循环之外

汇编语言习题及答案

汇编语言复习题 简答题 1.存储器地址为什么要分段?物理地址是如何形成的? 2.IBM PC机的寻址方式(与数据有关的寻址方式)有几种?各举一例说明。 3.80x86微机的存储器中存放信息如下图所示。试读出30022H与30024H字节单元的内容与30021H和30022H字单元的内容。 4.现有(DS)= 2000H,(BX)=0100H,(SI)= 0002H, (20100)= 12H, (20101)=34H, (20102)= 56H, (20103)=78H, (21200)=2AH, (21201)= 4CH, (21202)=B7H, (21203) = 65H,试说明下列各条指令执行完后AX的内容。 1)MOV AX,1200H

2)MOV AX,BX 3)MOV AX,[1200H] 4)MOV AX,[BX] 5)MOV AX,1100[BX] 5.完成下列各式补码数的运算,并根据结果设置标志位SF,CF,ZF,OF,指出运算结果是否有效 1)01001001b+10011101b 2)01000001b-10101011b 6.有符号定义语句如下: BUFF DB 1,2,3,’123’ EBUFF DB 0 L EQU EBUFF-BUFF 问L的值为多少?为什么? 答案: 1、IBM PC系列机的字长为16位,能够访问的最大存储空间64KB,而在IBM PC内存为1MB的情况下,访问这1MB的存储空间需要20位。为了解决字长为16位的机器访问1MB的存储空间,将1MB空间每16B

分为一段,共64K段,以16位段地址:16位偏移地址的形式组成,物理地址通过如下方式计算: 物理地址=段地址×10h + 偏移地址 2.IBM PC机的寻址方式有7种: 1)立即寻址:MOV AX, 1234H; 2)寄存器寻址:MOV AX, BX; 3)直接寻址:MOV AX, [1234H]; 4)寄存器间接寻址:MOV AX, [BX]; 5)寄存器相对寻址:MOV AX, 20H[BX]; 6)基址变址寻址:MOV AX, [BX][SI]; 7)相对基址变址寻址:MOV AX, 100H[BX][SI]; 3.解:(30022H)= 12H (30024H) = 56H (30021H) = 12CDH (30022H) = 3412H 4.解: (1)MOV AX,1200H 解:(AX)=1200H (2)M OV AX,BX 解:(AX)= 0100H

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