最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

微机原理与接口技术试题库(含答案)

IT圈 admin 54浏览 0评论

2024年5月28日发(作者:林熙柔)

1、二进制数 10010110.10B 的十进制数值可表示为( B )

A. 96.8 B. 150.5

C. 96.5 D. 160.5

2、下列8086CPU 标志寄存器 FR 的标志中,不属于状态标志的是( C )

3、一个8 位的二进制整数,若采用补码表示,且由4 个“1”和4 个“0”组成,则最小

值为( D )。

A.-120 B.-7 C.-112 D.-121

4、RAM 6116芯片有 2K×8 位的容量,它的片内地址选择线和数据线分别是( B )

A.A0~A15和 D0~D15 B.A0~A10和 D0~D7

C.A0~A11和 D0~D7 D.A0~A11和 D0~D15

5、8086 CPU在响应中断时顺序将( C )内容压入堆栈。

6、已知AL=68H,BL=5AH,指令ADD AL,BL 执行后,OF 和CF 的值分别为( C )。

A. 0,0 B. 0,1 C. 1,0 D. 1,1

7、下列 8088 指令中,含有非法操作数寻址的指令是( C ) 。

A. MOV AX,[10H] B. IN AX,DX

C. MOV [BX][BP],10H D. MOV BX,COUN[SI]

8、n+1 位符号数x 的补码表示范围为( D )

A. -2

n

<x<2

n

B. -2

n

≤x≤2

n

C. -2

n

-1≤x<2

n

D. -2

n

≤x<2

n

9、8086 能够访问的存储空间的大小是( B )。

A. 64k B. 1M

C. 256 D.16M

10、若用 128K*4bit 的SRAM 芯片构成640KB 的存储器组织,共需要( A )片芯片。

A. 10 B. 20 C. 30 D. 40

11、在CMP AX,DX 指令执行后,当标志位 SF,OF,ZF 满足逻辑关系(SF⊕OF)+ZF=0

时,表明( A )。

A. AX >DX B. AX<DX C. AX≥DX D. AX≤DX

12、若要使寄存器AL 中的高4 位不变,低4 位清零,应使用指令( B )。

A. AND AL,0FH B. AND AL,0F0H

C. OR AL,0FH D. OR AL,0F0H

13、8259A 需( A ) 片级连可以扩展为64 级优先级。

A. 9 片 B. 8 片 C. 7 片 D. 6 片

14、8253 是可编程定时.计数器芯片,它内部有( A )。

A.三个定时器 B.四个定时器

C.二个计数器 D.四个计数器

15、8086/8088 中除( C )两种寻址方式外,其它各种寻址方式的操作数均在存储器中。

A.立即寻址和直接寻址 B. 寄存器寻址和直接寻址

C. 立即寻址和寄存器寻址 D. 立即寻址和寄存器相对寻址

16、通常所说的 32位机,指的是这种计算机的CPU( B )。

A. 是由 32个运算器组成的 B. 能够同时处理 32位二进制数据

C. 包含有 32个寄存器 D. 一共有 32个运算器和控制器

17、相邻段地址之间的最小距离为( A )

A.16 个字节 B.64K 字节

C.1K 字节 D.256 字节

18、若CPU 的地址线为共16 条,而某存储器芯片单元为2K,则加在该存储器芯片上的地

址线为 ( A ) 。

A. A0 ~ A10 B. A0 ~ A11 C. A0 ~ A12 D. A0 ~ A13

19、8088 系统对中断请求响应优先级最低的请求是( B ) 。

A. NMI B. 单步中断 C. 除法错中断 D. INTR

20、微型计算机在硬件上是由( A )四大部分分组成。

A. 微处理器、存储器、I/O 接口和总线 ;

B. ALU、寄存器组、程序计数器和指令系统 ;

C. 微处理器、存储器、输入设备、输出设备 ;

D. 主板、硬盘、键盘、显示器 ;

21、8086 CPU的 NMI 引脚上输入的信号是( B )

A.可屏蔽中断请求 B.非屏蔽中断请求

C.中断相应 D.总线请求

22、在数据传送指令中要注意:立即数只能作为( A )。

A. 源操作数 B. 目的操作数

C. 源操作数和目的操作数 D.源操作数或目的操作数

23、EPROM 是指 ( D )

A.随机读写存储器 B.可编程只读存储器

C.只读存储器 D.可擦除可编程只读存储器

24、在数据传输率相同的情况下,同步字符串送的速度高于异步字符传输,其原因是( D )

A.字符间无间隔 B.双方通信同步

C.发生错误的概率少 D.附加位信息总量少

25、当使用串处理指令CMPSW 寻找两串中的不同数据时,应使用重复前缀为( C )。

26、8086/8088的一个典型总线周期需要( A )个 T 状态。

A.4 B.3

C.2 D.1

27、堆栈的工作方式是( D ) 。

A.先进先出 B.随机读写

C.只能读出不能写入 D.后进先出

28、下列四条指令中正确的是( C )

(1)MOV BL,CX (2)MOV DS,AX

(3)MOV [BX],[DI] (4)CMP AX,1234H

A.(1)与(2) B.(2)与(3)

C.(2)与(4) D.(1)与(3)

29、CPU 与外设间数据传送的控制方式有( D )

A.中断方式 B.程序控制方式

方式 D.以上三种都是

填空题

1、完成下面不同数制之间的转换

73.25D=01001001.01B, 10010010B=92H

100101.11B=37.75D=(0011 0111.0111 0101)BCD

2、二进制数 1.101 转换为十六进制数为____5E4.A _____H。

3、堆栈操作时,一次数据入栈,堆栈指针__-2__;一次数据出栈,堆栈指针___+2___。

4、8086 系统中的汇编语言程序可以使用四个段,程序运行时,四个段的基地址分别放在

__CS__、__DS__、__ES__及__SS___。

5、若某中断向量为 10H, 则该中断的中断服务子程序的入口地址在中断向量表中的物理

地址范围为___40H_____~____43H__。

6、在8088系统中五片中断控制器8259可控制____36_个中断源。

7、串行通信有两种基本的通信方式,分别是____同步___和_____异步___。

8、8086CPU对 I/O端口的编址是采用___独立编址____方式。

9、8259 可编程中断控制器可以进行级联,其级联是通过___ 1_____管脚实现的。

此时,主 8259 应接__从 8259 的CAS 管脚______。

10、8086/8088 CPU 的数据线和地址线是以____分时复用____方式轮流使用的。

11、8088CPU的地址总线有______20____条,最大内存空间为____1M______,物理地址是

由__段地址___和___偏移地址__形成的。

12、外部设备是通过_____ INTR ___引脚向 CPU 请求服务的,而 CPU 是通过__INTA ____

给外设应答。

13、执行INT 04H 后,中断服务程序入口地址的 CS 在_12H__, __13H___ 单元,IP 在

__10H__, __11H__单元中。

14、若三片8259 级联,从片分别连接在主片的 IR2和 IR5上,则主8259A的ICW3 为

____00100100___B。

15、已知80386 计算机的地址线为 32根,它可直接访问的存储空间是___4G ____B。

16、8255 有两个控制字,它们分别是_____方式控制字____和___ C 口置0/置1 控制字

_____。

17、每片8255 包括三个八位并行口,其中__ A _ 可工作在方式 2,又可工作在方式 1。

18、对字符串操作时,__ DS:SI___指向源操作数,__ ES:DI ____指向目的操作数。

19、设[X]

=11100011,[Y]

=00110010,[X]

=____10011101___, [X-Y]

=___10110001____。

20、为保证DRAM 中内容不丢失,需要进行____刷新_____操作。

21、变量具有三种属性,分别是 段属性 属性、__类型属性____属性和 偏移属性

属性。

22、汇编语言源程序需经过编辑、___汇编___和___连接___,最后才能运行。

23、[A+B]

=10011101,则A+B 的真值为____-99_____D。

24、指令 MOV AL, BL 对源操作数来说是__寄存器方式__寻址方式,

MOV AX, [BX+6]对源操作数来说是____寄存器相对方式_____寻址方式,

MOV AX, DS:[2000H]对源操作数来说是____直接寻址方式____寻址方式。

25、已知(AL)=0101110lB,执行指令 NEG AL 后再执行 CBW,(AX )=__ 0FFA3H

8、设 SS=1000H,SP=3000H,AX=128AH ,CX=0931H 则执行下列指令后

PUSH AX

PUSH CX

POP AX

SS=_____1000H___,SP=___2FFFH_____,

AX=____0931H____,CX=___0931H_____。

26、在8086 CPU 系统中,设某中断源的中断类型码为08H,中断矢量为0100H:1000H,

则相应的中断矢量存储地址为__00020H ____;从该地址开始,连续的4个存储单元存放的

内容依次为__00H____、___10H___、___00H___、 ___01H___。

27、如果一个程序在执行前 (CS)=86F0H,(IP)=2000H,该程序的起始地址是

___88F00____H。

判断题(错误的要指出错误的原因或进行修改)

1、MOV 2787H,AX

× 在MOV指令中,立即数不能作为目的操作数。

2、MOV 1234H,AX

× 在MOV指令中,立即数不能作为目的操作数。

3、MOV [2787H],AX

4、SAL BX,2

× 移位指令中,移位的位数大于1,必须先将移位位数置于CL中,在移位指令中用

5、SAL BX,5

× 移位指令中,移位的位数大于1,必须先将移位位数置于CL中,在移位指令中用

CL指定移位位数。

6、POP CS

× CS不能作为目的操作数。

7、MOV AX,BL

× 两操作数类型不一致。

8、POP CS

× CS不能作为目的操作数。

9、MOV 2347H,AX

× 目的操作数不能是立即数

10、MOV AX,BL

× 两操作数类型不一致。

11、MOV [1234H],AX

CS,AX

× CS不能作为目的操作数。

13、在堆栈中,栈底在高地址端,而栈顶在低地址端,因此在压栈操作中堆栈地址由高向低

变化。

14、工作于最小模式的8086微处理系统中,没有8087芯片。

15、8086CPU的内部结构主要有两个单元,其中BIU主要负责取指令以及与存储器和I/O接

口传送信息,而EU则负责执行指令。

简答与分析题

1、解释:无条件传送方式

无条件传送是最简单的数据传送方式。当外设的数据传送是定时的,且时间是已知

的情况下,CPU 定时取入数据,而当CPU 去取

2、a.在8086 存储器中存放数据时有规则字与非规则字之分,请说明它们的区别?

b. 在读总线周期中,各时钟周期所完成的任务。如果外设没准备好,应在哪个时钟周期

插入什么时钟周期?

答案:a.规则字存放在偶数地址开始的两个存储单元中,读写用一个时钟周期就可完成。

非规则字存放在奇地址开始的两个存储单元中,读写需要两个时钟周期。

b. T1 周期向地址总线发送地址;T2T3 周期读写数据;T4 周期结束。 如果外设没准备

好在T3 周期插入Tw 周期。

3、什么是中断向量表?简述CPU如何得到中断类型为N的中断向量?

答案:在8086系统中,把系统中256个中断向量依次存放在内存最低端的1024字节中(每

个中断向量由2字节的段内偏移量和2字节的段基值组成,256个中断向量共占1024字节),

这1024字节的中断向量在内存中所占区域称为“中断向量表”。表首地址为0000H:0000H,

即00000H。

当中断源将中断类型码N送入CPU后,CPU将N乘4作为“中断向量表的地址指

针”去查中断向量表,从该地址指针处取出4个字节,其中前2个字节送IP,后2个字节

送CS,则程序就转入该中断向量所指向的中断服务程序入口,执行该中断服务程序。

4、类型码为 4 的中断是什么类型的中断,它的中断服务程序入口地址放在什么地方?试

说明它的存放格式。

1、溢出中断 0000H~0010H

5、简述中断与子程序调用之间的区别。并简要说明8259A 中断控制器中的 和 IMR

三个寄存器的功能。

答案:中断段间调用而子程序可以段间或段内,IRR 记录中断请求状况.有请求相应

的位置 1 , ISR 记录中断服务状况.有服务相应的位置 1 ,IMR 记录中断屏蔽状况.有

屏蔽相应的位置 1。

6、执行下列指令后,AX 寄存器中的内容是什么?

TABLE DB 10,20,30,40,50

ENTRY DW 3

MOV BX,OFFSET TABLE

ADD BX,ENTRY

MOV AX,[BX]

HLT

答案:AX)=3228H

7、下图为 SRAM6116 芯片与 8088 系统总线的连接图

(1) 写出6116 芯片的存储容量;

(2) 分析每片6116 所占的内存地址范围。

答案:(1)6116 芯片的存储容量是2k*8bit

(2)第一片6116 的内存地址范围是F1000H~F17FFH

第二片 6116 的内存地址范围是F1800H~F1FFFH

CSEG ENDS

END BEGIN

8、在8086系统中,试用4K×8位的2732及74LS138译码器,构成一个32K×8的RAM,

画出硬件连接图,并写出每片地址范围。

答案:(1)8K×8 芯片片内地址线 13 条

32K×8 矩阵地址线 15 条

所以组间地址线2 条

(2)四组芯片的地址分别是 0000H-1FFFH 、2000H-3FFFFH 、4000H-5FFFH 、

6000H-7FFFH

(3)电路图如下

9、设系统中8253 端口地址为 40H-43H,画出译码电路,编程对其作如下设置。

(1)计数通道 0 工作在方式 0,二进制计数,计数初值 30H。

(2)计数通道 1 工作在方式 3,BCD码计数,计数初值 9080。

其中, 控制字格式如下:

答案: 译码电路如下:

(1)格式字:00010000B

Mov al,10H

Out 43H,al

Mov al,30H

Out 40H,al

(2 )格式字:01110111B

Mov al,77H

Out 43H,al

Mov ax,9080H

Out 41H,al

Mov al,ah

10、完成指令序列

a. 用减法指令实现 789ABCH- 123456H

b. 将DX 寄存器的D1、D4、D6、D9、D10位屏蔽,其余位不变。

答案: a.MOV AX,9ABCH

SUB AX,3456H

MOV DX,78H

SBB DX,12H

b.AND DX,11111B

11、某系统中的 8253 芯片的通道 0-3 和控制端口地址分别为 0FFF0H-0FFF3H,定义

通道 0 工作在方式 2,CLK =2MHz。要求:输出OUT为 1KHz的波特率;定义通道 1 工

作在方式0,其CLK1输入外部计数事件,每计满 1000 个向CPU发出请求。请写出通道0

和通道1的初始化程序,并画出电路图。

答案:

Mov dx,0FFF6H

Mov al,35H

Out dx,al

Mov ax,2000h

Mov dx,0FFF0H

Out dx,al

Mov ah,al

Out dx,al

Mov dx,0FFF6H

Mov al,71H

Out dx,al

Mov ax,1000D

Mov dx,0FFF2H

Out dx,al

Mov ah,al

Out dx,al

12、用8253 实现每隔 1s 产生一个负脉冲,已知 8253 的时钟频率为2MHZ。

(1)写出8253 的端口地址;(2)编写8253 的初始化程序。

8253控制字格式如下:

答案: (1) 8253 的端口地址为DF80H,DF81H,DF82H,DF83H

(2) 1/2MHz=0.5us 0.1s/0.5us=2000000>65535,应采用两个计数器级联,可

定义0#

计数器工作在方式3 (方波发生器),计数初值为20000,1#计数器工作在方式 2 (频率

发生

器),计数初值为 100。

MOV DX,0DF83H

MOV AL,00110110B

OUT DX,AL

MOV AL,01010100B

OUT DX,AL

MOV DX,0DF80H

MOV AX,20000

OUT DX,AL

MOV AH,AL

OUT DX,AL

MOV DX,0DF81H

MOV AL,100

OUT DX,AL

13、设内存DATA1 和DATA2 开始分别存放50 个无符号字数据,编制程序

将两个存储区对应字数据求和并存入 SUM 开始的单元(用完整汇编程序完成)。

答案: DSEG SEGMENT

DATA1 DW 34,23,67,0……

DATA2 DW 90,67,45,32……

SUM DW 50 DUP(?)

DSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG ,CS:CSEG

BEGIN:MOV AX,DSEG

MOV DS,AX

LEA SI,DATA1

LEA DI,DATA2

LEA BX,SUM

MOV CX,50

AGAIN:MOV AX,[SI]

ADD AX,[DI]

MOV [BX],AX

INC SI

INC SI

INC DI

INC DI

INC BX

INC BX

LOOP AGAIN

MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

14、已知DATA 单元开始存放一组无符号的字节数据,数据长度在CNT 单元

存放。编制程序:检查该组数据中是否存在数据 100,若存在,则在显示器上显示“Y”,

否则显示 “N”。(用完整汇编程序完成)。

答案:

DSEG SEGMENT

DATA DB 32,45,67,78,100……

CNT DB ?

DSEG SEGMENT

CSEG SEGMENT

ASSUME DS:DSEG,CS:CSEG

BEGIN:MOV AX,DSEG

MOV DS,AX

MOV CX,CNT

MOV DI,OFFSET DATA

AGAIN:MOV AL,[DI]

CMP AL,100

JZ HAVE

INC DI

LOOP AGAIN

MOV DL,‘N’

MOV AH,2

INT 21H

JMP OVER

HAVE:MOV DL,‘Y’

MOV AH,2

INT 21H

OVER:MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

15、用完整的汇编程序完成:在以 DAT 为首地址的字缓冲区中存有一批字数据,以“*”

作为结束,编程找出其最大值,结果存入RSLT 单元。

答案:DSEG SEGMENT

DAT DW 89,300,213,567,0,-89,-987„„’*’

RSLT DW ?

DSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG, CS:CSEG

BEGIN:MOV AX, DSEG

MOV DS, AX

LEA SI, DAT

MOV AX, [SI]

CMP AX, ‘*’

JZ OVER

AGAIN: INC SI

INC SI

MOV DX,[SI]

CMP DX,’*’

J Z OVER

CMP AX,DX

JGE AGAIN

MOV AX, DX

JMP AGAIN

OVER: MOV RSLT ,AX

MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

二、填空题

1、对于R进制数来说,其基数(能使用的数字符号个数)是 R个 ,

能使用的最小数字符号是 0 。

1、 2、十进制数72转换成八进制数是 110Q

3、与十进制数67等值的十六进制数是 43H 。

1、 4、二进制数101.011转换成十进制数是 5.375

2、 5、十六进制数0E12转换成二进制数是 11B

三、选择题

1、在计算机内部,一切信息的存取、处理和传送都是以 D 形式进行

的。

A)EBCDIC码 B)ASCII码 C)十六进制编码 D)二进制编码

2、与十进制数56等值的二进制数是 A 。

A)111000 B)111001 C)101111 D)110110

3、十进制数59转换成八进制数是 A 。

A)73Q B)37Q C)59Q D)112Q

4、与十进制数58.75等值的十六进制数是 B 。

A) B) C)3A.23H D)C.3AH

5、二进制数1101.01转换成十进制数是 C 。

A)17.256 B)13.5 C)13.25 D)17.5

6、二进制数111010.11转换成十六进制数是 B 。

A)3ACH B) C)3A3H D)3A.3H

7、十六进制数1CB.D8转换成二进制数是 D 。

A)110001011.11001 B)111101011.11101

C)111101011.11101 D)111001011.11011

8、将十六进制数FF.1转换成十进制数是 C 。

A)255.625 B)2501625 C)255.0625 D)250.0625

9、十进制正数43的八位二进制原码 B 。

A)00110101 B)00101011 C)10110101 D)10101011

10、十进制正数38的八位二进制补码是 D 。

A)00011001 B)10100110 C)10011001 D)00100110

四、是非判断题

1、在第三代计算机期间出现了操作系统。 ( √ )

2、对于种类不同的计算机,其机器指令系统都是相同的。(× )

3、在计算机中,数据单位bit的意思是字节。 ( × )

4、八进制数的基数为8,因此在八进制数中可以使用的数字符号是0、1、2、3、4、5、

6、7、8。( × )

5、在汉字国标码GB2312-80的字符集中,共收集了6763个常用汉字。(√ )

答案:

一、问答题

1、(1)0AH (2)51H (3)20H

2、(1)0~255 (2)0.996094 (3)0~65535 (4)-32768~32767

3、16

4、(1)X1=1 (2)X1∨ X2 ∨ X3=1

5、(1)X>Y (2)X

二、填空题

3、 R个,0

4、 110Q

5、 43H

6、 5.375

7、 11B

三、选择题

1、D 2、A 3、A 4、B 5、C 6、B 7、D 8、C 9、B 10、D

四、是非判断题

1、√ 2、× 3、× 4、× 5、√

1. 微处理器,微型计算机和微型计算机系统三者之间有何区别?

答:微处理器即CPU,它包括运算器、控制器、寄存器阵列和内部总线等部分,用于实现

微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储

器、I/O接口电路以及总线构成;微型计算机系统则包括硬件系统和软件系统两大部分,其

中硬件系统又包括微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部

分,而微型计算机系统又主要由微型计算机作为其硬件构成。

2. CPU在内部结构上由哪几部分构成?CPU应具备哪些主要功能?

答:CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要

功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备

传递和暂存数据的功能。

3. 累加器和其它通用寄存器相比有何不同?

答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。累加器除

了可用做通用寄存器存放数据外,对某些操作,一般操作前累加器用于存放一个操作数,操

作后,累加器用于存放结果。

4. 微型计算机的总线有哪几类?总线结构的特点是什么?

答:微型计算机的总线包括地址总线、数据总线和控制总线三类,总线结构的特点是结构简

单、可靠性高、易于设计生产和维护,更主要的是便于扩充。

5. 举出10个微型计算机应用的例子。

答:略

6. 计算机I/O接口有何用途?试列出8个I/O接口。

答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机

与外设之间的信息流通和交换。例如:串行通讯口(COM口)、并行打印机口、软盘驱动

器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(U

SB、SCSI等)。

7. 现在,计算机主板上一般都包括哪些I/O接口?I/O接口卡如何与主板相连?

答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器

接口、光驱接口、USB接口等。象显示器适配器、网卡、modem卡等I/O接口卡一般通过

总线插槽与主板相连。

8. 简述系统总线,AGP总线,PCI总线及ISA总线的作用。

答:系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CP

U与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存

交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或

内存交换信息的通道。

9. 试说明计算机用户,计算机软件,计算机硬件三者的相互关系。

答:计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在

该系统中处于三个不同的层次。计算机用户处于最高层,计算机软件处于中间层,计算机硬

件系统处于最下层。在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关

系,指挥计算机硬件完成指定的任务。即,计算机用户使用程序设计语言编制应用程序,在

系统软件的干预下使用硬件系统进行工作。

10. 简述DOS操作系统各部分的作用及相互关系。

答:DOS操作系统包括3个模块:DOS-Shell()、DOS-Kernel(IBMDOS.

COM)、DOS-BIOS().

DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解

释和任务的分配,具体工作则要靠DOS-Kernel模块所提供的系统功能完成。

DOS-Kernel模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完

全依赖各种设备实现指定的功能,因此,它还要进一步调用DOS-BIOS模块中的设备驱动

程序才能工作。

DOS-BIOS模块对DOS-Kernel传送的"请求"进行解释,最终转换为对固化在ROM-BI

OS中的设备控制程序的请求并由它们去控制硬件,完成指定的操作。

11. 存储单元的选择由什么信号控制?读、写靠什么信号区分?

答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作则要靠读、写信

号区分。

12. 以一个可执行文件的运行为例,简述程序执行过程。

答:当在DOS提示符下键入一个可执行文件名称(或在其它操作系统环境下执行有关操作)

后,操作系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件

执行过程。首先将第一条指令从内存取入CPU中译码执行,同时指令指针自动加1或按指

令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入CPU译

码执行,这样不断重复取指令和执行指令的过程,逐条执行指令,直至程序结束。

1.把下列各数化成二进制数和八进制数(二进制取3位小数,八进制取一位小数): 7+3/4,

±3/64,73.5, 725.9375,25.34

答:7+3/4=111.110B; 7+3/4=7.6O; ±3/64=±0.000B; ±3/64=±0.0O; 73.5=1001001.1

00B; 73.5=111.4O;

725.9375=1011010101.111B; 725.9375=1325.7O; 25.34=11001.011B; 25.34=31.3O

2.把下列各数化成十进制数:101.10011B ,22.2O, AD.4H

答:101.10011B=5.59375; 22.2O=18.25; AD.4H=173.25

3.完成下列二进制数运算:101.111+11.011,1001.10-110.01,101.11*11.01, 1011101

11/1101

答:101.111+11.011=1001.01; 1001.10-110.01=11.01;

101.11*11.01=10010.1011; 101110111/1101=11100.11

4.完成下列各十六进制数的运算: A39E+28DC,D5AB-7CE5,2BF*4C,C16E/3A

答:A39E+28DC=CC7A; D5AB-7CE5=58C6; 2BF*4C=D0B4; C16E/3A=355.C2

5.先将15B*8E/2A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进

制数。

答:15BH*8EH/2AH=347*142/42=49274/42=1173.19=495.30AH

6.试分别判断下列各组数据中哪个数据最大?哪个数据最小?

(1) A=0.1001B,B=0.1001D,C=0.1001H

(2) A=10111101B,B=1001D,C=111H

答:(1) A最大, C最小; (2) B最大, A最小;

1.写出下列各数的二进制原码和补码(最后两个用双字节): 0,96,-128,-38H,127,10

5,879H,-32768

答:上述各数的原码依次为:00000000(10000000), 01100000, 无, 10111000, 0111

1111, 01101001, 1001, 无;

上述各数的补码依次为:00000000, 01100000, 10000000, 11001000, 011111

11, 01101001, 1001, 1000;

2.分别列出下述10进制数的16进制数、非压缩的BCD数、压缩的BCD数、ASCII数字

串(用16进制形式写出):10, 64, 78, 81, 92, 100, 125, 255

答:上述各数的16进制数依次为:AH,40H,4EH,51H,5CH,64H,7DH,FFH;

上述各数的非压缩的BCD数依次为:0100H,0604H,0708H,0801H,0902H,010000H,

010205H,020505H;

上述各数的压缩的BCD数依次为:10H,64H,78H,81H,92H,0100H,0125H,0255H;

上述各数的ASCII数字串依次为:3130H,3634H,3738H,3831H,3932H,313030H,3132

35H, 323535H;

3.用10进制数写出下列补码表示的机器数的真值:71H,1BH,80H,F8H,397DH,CF4

2H,9350H

答:上述补码表示的各机器数的真值用10进制数分别表示为: +113,+27,-128,-8,+14717,-

20670,-27828

4.若用一个字节来表示带符号数,判断下列各运算在机内进行时是否会产生溢出,写出判断

过程。

A. 5BH+32H; B. -08H-15H; C. -51H+(-3DH); D. 2DH+3CH

答:A. 产生溢出, 5BH=01011011B其补码表示的机器数为:01011011

32H=00110010B其补码表示的机器数为:00110010

相加的结果为:10001101

数值最高位向符号位进位,但符号位向前无进位,故产生溢出。

B. 不产生溢出, -08H=-00001000B其补码表示的机器数为:11111000

-15H=-00010101B其补码表示的机器数为:11101011

相加的结果为:111100011

数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出.

C.产生溢出,-51H=-01010001B其补码表示的机器数为:10101111

-3DH=-00111101B其补码表示的机器数为:11000011

相加的结果为:101110010

数值最高位向符号位无进位,但符号位向前进位,故产生溢出.

D.不产生溢出,2DH=00101101B其补码表示的机器数为:00101101

3CH=00111100B其补码表示的机器数为:00111100

相加的结果为:01101001

数值最高位向符号位无进位,符号位向前也无进位,故不产生溢出。

5.从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字

符0~F,如何转换为其相对应的二进制数(00000000~00001111)?

答:从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。

从键盘敲入16进制数字符0~9后,将其ASCII码值减去30H,就转换成了与其相对应的

二进制数.

从键盘敲入16进制数字符A~F后,将其ASCII码值减去37H,就转换成了与其相对应的

二进制数.

6.详细叙述总线缓冲器的作用。

答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送避免相互冲突,当几路数据

都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据

与总线断开。

7.锁存器和寄存器有什么不同?

答:锁存器与寄存器都是用来暂存数据的器件,在本质上没有区别,不过寄存器的输出端平

时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),

而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状

态锁存起来,使其不再随输入端的变化而变化。

1.8086从功能上分成了EU和BIU两部分。这样设计的优点是什么?

答:传统计算机在执行程序时,CPU总是相继地完成取指令和执行指令的动作,

即,指令的提取和执行是串行进行的。而8086CPU 在功能上分成了EU和BIU两

部分,BIU负责取指令,EU负责指令的执行,它们之间既互相独立又互相配合,

使得8086可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指

令的并行工作,大大提高了CPU和总线的利用率,从而提高了指令的处理速度。

2.8086 CPU中地址加法器的重要性体现在哪里?

答:地址加法器是8086 CPU的总线接口单元中的一个器件,在8086存储器分段

组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存

器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64

K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运

行效率。

3.8086 CPU中有哪些寄存器?分组说明用途。哪些寄存器用来指示存储器单元

的偏移地址?

答:8086 CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控

制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。8个通用寄存器都可以用来

暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累

加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指

令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI

为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放

段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来

存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,

标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取

指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代

码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段

的段地址;ES寄存器用来存放扩展段的段地址。

4.8086系统中存储器的逻辑地址由哪两部分组成?物理地址由何器件生成?如

何生成?每个段的逻辑地址与寄存器之间有何对应关系?

答:8086系统中存储器的逻辑地址由段地址(段首址)和段内偏移地址(有效

地址)两部分组成;存储单元的物理地址由地址加法器生成,寻址时,CPU首先

将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段

内偏移地址相加,得到一个20位的物理地址。数据段的段地址在DS寄存器中,

段内偏移地址可能在BX、BP、SI或DI寄存器中。代码段的段地址在CS寄存器

中,段内偏移地址在IP寄存器中。堆栈段的段地址在SS寄存器中,段内偏移地

址在SP寄存器中。扩展段的段地址在ES寄存器中,段内偏移地址可能在BX、B

P、SI或DI寄存器中。

5.设CPU中各有关寄存器的当前状况为:SS=0a8bH、DS=17ceH、CS=dc54H、BX=

394bH、IP=2f39H、SP=1200H,BX 给出的是某操作数的有效地址,请分别写出

该操作数、下一条要取的指令及当前栈顶的逻辑地址和物理地址。

答:该操作数的逻辑地址为DS:BX=17CE:394BH,物理地址=17CEH*10H+394BH=

1B62BH;下一条要取的指令的逻辑地址为CS:IP=DC54:2F39H,物理地址=DC54

H*10H+2F39H=DF479H;当前栈顶的逻辑地址=SS:SP=0A8B:1200H,物理地址=0

A8BH*10H+1200H=0BAB0H。

6.若DS=157DH时,某操作数的物理地址是215FAH,当DS=18DEH时,该操作数

的物理地址是多少?

答:该操作数的段内偏移地址=该操作数的物理地址-DS=215FAH-157D0H=BE2AH,

故当DS=18DEH时,该操作数的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH

7.设 AX=2875H、BX=34DFH、SS=1307H、SP=8H,依此执行 PUSH AX、PUSH BX、

POP AX、POP CX后栈顶指针变为多少?AX=? BX=? CX=?

答:当前栈顶指针=SS*10H+SP=13070H+8H=13078H,依此执行PUSH AX、PUSH BX、

POP AX、POP CX后栈顶指针仍为13078H。但AX=34DFH,BX=34DFH,CX=2875H。

1. 假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻

址方式下的有效地址是什么?

(1)立即寻址

(2)直接寻址

(3)使用BX的寄存器寻址

(4)使用BX的间接寻址

(5)使用BX的寄存器相对寻址

(6)基址变址寻址

(7)相对基址变址寻址

答:(1)立即数寻址的有效地址是当前IP的内容;

(2)直接寻址,若使用位移量D=3237H进行,则有效地址为3237H;

(3)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效地址;

(4)使用BX的间接寻址时,有效地址在BX寄存器中,即有效地址=637DH;

(5)使用BX的寄存器相对寻址的有效地址=(BX)+D=637DH+3237H=95B4H;

(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;

(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;

2. 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用

以下几种寻址方式:

(1)寄存器间接寻址

(2)寄存器相对寻址

(3)基址变址寻址

答:(1)使用寄存器间接寻址,把首地址为BLOCK的字数组的第6个字送到DX

寄存器的指令为:

MOV BX,BLOCK

ADD BX,12

MOV DX,[BX]

(2)使用寄存器相对寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存

器的指令为:

MOV BX,BLOCK

MOV DX,[BX+12]

(3)使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器

的指令为:

MOV BX,BLOCK

MOV SI,12

MOV DX,[BX+SI]

3. 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34

H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B

7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,1200H

(2)MOV AX,BX

(3)MOV AX,[1200H]

(4)MOV AX,[BX]

(5)MOV AX,[BX+1100]

(6)MOV AX,[BX+SI]

(7)MOV AX,[BX+SI+1100]

答:(1)指令MOV AX,1200H执行完后AX寄存器的内容为1200H;

(2)指令MOV AX,BX执行完后AX寄存器的内容为0100H;

(3)指令MOV AX,[1200H]是将从物理地址=(DS)*10H+1200H=21200H开始

的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(4)指令MOV AX,[BX]是将从物理地址=(DS)*10H+(BX)=20100H开始的

两个单元内容送AX,故执行完后AX寄存器的内容为3412H;

(5)指令MOV AX,[BX+1100]是将从物理地址=(DS)*10H+(BX)+1100H=2

1200H开始的两个单元内容送AX,故执行完后AX寄存器的内容为4C2AH;

(6)指令MOV AX,[BX+SI]是将从物理地址=(DS)*10H+(BX)+(SI)=20

102H开始的两个单元内容送AX,故执行完后AX寄存器的内容为7856H;

(7)指令MOV AX,[BX+SI+1100]是将从物理地址=(DS)*10H+(BX)+(SI)

+1100H=21202H开始的两个单元内容送AX,故执行完后AX寄存器的内容为65B7

H;

4.假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)= 0100H,(B

P)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字

段的寻址方式是什么?其物理地址值是多少?

(1) MOV AX,0ABH (2) MOV AX,BX

(3) MOV AX,[100H] (4) MOV AX,VAL

(5) MOV AX,[BX] (6) MOV AX,ES:[BX]

(7) MOV AX,[BP] (8) MOV AX,[SI]

(9) MOV AX,[BX+10] (10) MOV AX,VAL[BX]

(11) MOV AX,[BX][SI] (12) MOV AX,[BP][SI]

答:(1)在指令 MOV AX,0ABH 中,源操作数字段的寻址方式是立即数寻址,

其物理地址值=(CS)*10H+(IP);

(2)在指令 MOV AX,BX 中,源操作数字段的寻址方式是寄存器寻址,操作

数在BX中,无物理地址;

(3)在指令 MOV AX,[100H] 中,源操作数字段的寻址方式是直接寻址,其

物理地址值=(DS)*10H+100 =29000H+100H=29100;

(4)在指令 MOV AX,VAL 中,源操作数字段的寻址方式是直接寻址,其物理

地址值=(DS)*10H+50H =29000H+50H=29050H;

(5)在指令 MOV AX,[BX] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(DS)*10H +(BX)=29000H+100H=29100H;

(6)在指令 MOV AX,ES:[BX] 中,源操作数字段的寻址方式是寄存器间接

寻址,其物理地址值=(ES)*10H+(BX)=21000H+100H=21100H;

(7)在指令 MOV AX,[BP] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(SS)*10H +(BP)=15000H+10H=15010H;

(8)在指令 MOV AX,[SI] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(DS)*10H +(SI)=29000H+0A0H=290A0H;

(9)在指令 MOV AX,[BX+10] 中,源操作数字段的寻址方式是寄存器相对寻

址,其物理地址值=(DS)*10H+(BX)+0AH= 29000H+100H+0AH =2910AH;

(10)在指令 MOV AX,VAL[BX] 中,源操作数字段的寻址方式是寄存器相对

寻址,其物理地址值=(DS)*10H+(BX)+50H= 29000H+100H+50H= 29150H;

(11)在指令 MOV AX,[BX][SI] 中,源操作数字段的寻址方式是基址变址寻

址,其物理地址值=(DS)*10H+(BX)+(SI) =29000H+100H+0A0H =291A0H;

(12)在指令 MOV AX,[BP][SI] 中,源操作数字段的寻址方式是基址变址寻

址,其物理地址值=(SS)*10H+(BP)+(SI)=15000H+10H+0A0H =150B0H

5.分别指出下列指令中的源操作数和目的操作数的寻址方式。

(1)MOV SI,200

(2)MOV CX,DATA[SI]

(3)ADD AX,[BX+DI]

(4)AND AX,BX

(5)MOV [SI],AX

(6)PUSHF

答:(1)目的操作数字段的寻址方式是寄存器寻址,源操作数字段的寻址方式

是立即数寻址;

(2)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是寄存器相对

寻址;

(3)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是基址变址寻

址;

(4)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式也是寄存器寻

址;

(5)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器

寻址;

(6)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器

寻址;

6.试述指令MOV AX,2010H和MOV AX,DS:[2010H] 的区别。

答:指令MOV AX,2010H是将立即数2010H送AX寄存器,而指令MOV AX,DS:[2

010H]是将DS段有效地址为2010H的两个单元的内容送AX。

7.写出以下指令中内存操作数的所在地址。

(1)MOV AL,[BX+5]

(2)MOV [BP+5],AX

(3)INC BYTE PTR [SI+3]

(4)MOV DL,ES:[BX+DI]

(5)MOV BX,[BX+SI+2]

答:(1)指令MOV AL,[BX+5]中内存操作数的所在地址=(DS)*10H+(BX)+5;

(2)指令MOV [BP+5],AX中内存操作数的所在地址=(SS)*10H+(BP)+5

和(SS)*10H+(BP)+6;

(3)指令INC BYTE PTR[SI+3]中内存操作数的所在地址=(DS)+(SI)+3;

(4)指令MOV DL,ES:[BX+DI]中内存操作数的所在地址=(ES)*10H+(BX)

+(DI);

(5)指令MOV BX,[BX+SI+2]中内存操作数的所在地址=(DS)*10H+(BX)+

(SI)+2和(DS)*10H+(BX)+(SI)+3;

8.判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一

条或多条指令)实现原错误指令((8)、(13)除外)期望实现的操作。

(1)MOV AL,BX (9)MOV ES,3278H

(2)MOV AL,SL (10)PUSH AL

(3)INC [BX] (11)POP [BX]

(4)MOV 5,AL (12)MOV [1A8H],23DH

(5)MOV [BX],[SI] (13)PUSH IP

(6)MOV BL,F5H (14)MOV [AX],23DH

(7)MOV DX,2000H (15)SHL AX,5

(8)POP CS (16)MUL AX,BX

答:(1)MOV AL,BX 错,源操作数为字类型,目的操作数为字节类型,二者不

一致。应改为:MOV AX,BX 或 MOV AL,BL ;

(2)MOV AL,SL 错,SI寄存器不能分为高8位和低8位使用,即没有SL寄存

器。应改为:MOV AX,SI

(3)INC [BX] 错,未指定操作数的类型。应改为:INC BYTE PTR [BX]

(4)MOV 5,AL 错,目的操作数使用了立即数,

在指令中一般不允许。应改为:MOV DS:[5],AL

(5)MOV [BX],[SI] 错,源操作数和目的操作数均为内存单元,不允许。

应改为:MOV AX,[SI]

MOV [BX],AX

(6)MOV BL,F5H 错,源操作数错,以A~F开头的数字前应加0。应改为:MOV

BL,0F5H

(7)MOV DX,2000H 正确。

(8) POP CS 错,不能将栈顶数据弹至CS中。

(9)MOV ES,3278H 错,立即数不能直接送ES寄存器。

应改为:MOV AX,3278H

MOV ES,AX

(10)PUSH AL 错,栈操作不能按字节进行。应改为:PUSH AX

(11)POP [BX] 正确。

(12)MOV [1A8H],23DH 错,源操作数是立即数,目的操作数必须使用寄存器指

出。应改为:

MOV BX,1A8H

MOV [BX],23DH

(13)PUSH IP 错,不能用IP寄存器做源操作数。

(14)MOV [AX],23DH 错,不能用AX寄存器间接寻址。应改为:MOV BX,AX

MOV [BX],23DH

(15)SHL AX,5 错,不能用大于己于1的立即数指出移位位数。应改为:

MOV CL,5

SHL AX,CL

(16)MUL AX,BX 错,目的操作数AX是隐含的,不能在指令中写出。应改为:

MUL BX

9.设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

(1)执行指令PUSH AX后 (SP)=?

(2)再执行PUSH BX及POP AX后 (SP)=?(AX)=?(BX)=?

答:(1)执行指令PUSH AX后 (SP)=2000H-2=1FFEH;

(2)再执行PUSH BX及POP AX后 (SP)=1FFEH, (AX)=5000H, (BX)=5000H

10.要想完成把[2000H]送[1000H]中,用指令:MOV [1000H],[2000H]是否正确?

如果不正确,应用什么方法?

答:把[2000H]送[1000H]中,用指令 MOV [1000H],[2000H]不正确,应改为:M

OV AX,[2000H] MOV [1000H],AX

11.假如想从200中减去AL中的内容,用SUB 200,AL是否正确?如果不正确,

应用什么方法?

答:想从200中减去AL中的内容,用SUB 200,AL不正确,应改为:

MOV BL,200 SUB BL,AL

12分别写出实现如下功能的程序段

(1)双字减法(被减数7B1D2A79H,减数53E2345FH)。

(2)使用移位指令实现一个字乘18的运算。

(3)使用移位指令实现一个字除以10的运算。

(4)将AX中间8位,BX低四位,DX高四位拼成一个新字。

(5)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来

(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中。

答:(1)双字减法的程序段是:

MOV AX,2A79H ;被减数的低位字送AX

SUB AX,345FH ;低位字相减,结果送AX

MOV BX,7B1DH ;被减数的高位字送BX

SBB BX,53E2H ;高位字相减处并减去低位字相减产生的借位,结果送BX

(2)使用移位指令实现一个字乘18的程序段是:

MOV AX,05F7H ;被乘数送AX

SHL AX,1 ;被乘数乘以2,结果在AX中

MOV BX,AX ;被乘数乘以2的结果暂存到BX

MOV CL,3 ;设置移位位数3

SHL AX,CL ;被乘数再乘以8(共乘以16),结果在AX中

ADD AX,BX ;被乘数再乘以18,结果在AX中

(3)使用移位指令实现一个字除以10的运算,必须将X/10拆分成多项的和,而

每一项都应是非的某次幂的倒数。利用等比级数的前N项和公式,可求出A0=X/

8,公比Q=-1/4,故X/10=X/8-X/32+X/128-X/512+...,

所求的程序段是:

MOV AX,FE00H ;被除数送AX

MOV CL,3 ;设置移位位数3

SHR AX,CL ;被乘数除以8,结果在AX中

MOV BX,AX ;被乘数除以8的结果暂存到BX

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除32),结果在AX中

SUB BX,AX ;被除数/8-被除数/32,结果在BX中

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除128),结果在AX中

ADD BX,AX ;被除数/8-被除数/32+被除数/128,结果在BX中

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除512),结果在AX中

SUB BX,AX ;被除数/8-被除数/32+被除数/128-被除数/512,结果在BX

(4) 将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是:

AND DX,0F000H ;将DX的低12位清零,高4位不变

AND AX,0FF0H ;将AX的低4位清零,高4位清零,中间8位不变

AND BX,0FH ;将BX的高12位清零,低4位不变

ADD AX,BX

ADD AX,DX ;按要求组成一个新字,结果放在AX中。

(5) 将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是:

MOV AL,[BX] ;数据段中BX为偏移地址的字单元内容送AX

XCHG AL,[BX+3] ;数据段中BX+3为偏移地址的字单元内容与AX的内容交换

MOV [BX],AL ;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址

的字单元

MOV AL,[BX+1] ;数据段中BX+1为偏移地址的字单元内容送AX

XCHG AL,[BX+2] ;数据段中BX+2为偏移地址的字单元内容与AX的内容交换

MOV [BX+1],AL ;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地

址的字单元

(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中

的程序段是:

MOV DL,BL ;四位压缩BCD数的低位字节送DL

AND DL,0FH ;DL的高4位清零,得四位非压缩BCD数的最低位,放入DL中

MOV CL,4 ;设置移位位数4

SHR BX,CL ;BX中的数据逻辑右移4位,使四位压缩BCD数的次低位位于B

L的低4位

MOV CH,BL ;将BL的内容暂存到CH中保留

AND CH,0FH ;CH的高4位清零,得四位非压缩BCD数的次低位,放CH中

MOV CL,4 ;设置移位位数4

2024年5月28日发(作者:林熙柔)

1、二进制数 10010110.10B 的十进制数值可表示为( B )

A. 96.8 B. 150.5

C. 96.5 D. 160.5

2、下列8086CPU 标志寄存器 FR 的标志中,不属于状态标志的是( C )

3、一个8 位的二进制整数,若采用补码表示,且由4 个“1”和4 个“0”组成,则最小

值为( D )。

A.-120 B.-7 C.-112 D.-121

4、RAM 6116芯片有 2K×8 位的容量,它的片内地址选择线和数据线分别是( B )

A.A0~A15和 D0~D15 B.A0~A10和 D0~D7

C.A0~A11和 D0~D7 D.A0~A11和 D0~D15

5、8086 CPU在响应中断时顺序将( C )内容压入堆栈。

6、已知AL=68H,BL=5AH,指令ADD AL,BL 执行后,OF 和CF 的值分别为( C )。

A. 0,0 B. 0,1 C. 1,0 D. 1,1

7、下列 8088 指令中,含有非法操作数寻址的指令是( C ) 。

A. MOV AX,[10H] B. IN AX,DX

C. MOV [BX][BP],10H D. MOV BX,COUN[SI]

8、n+1 位符号数x 的补码表示范围为( D )

A. -2

n

<x<2

n

B. -2

n

≤x≤2

n

C. -2

n

-1≤x<2

n

D. -2

n

≤x<2

n

9、8086 能够访问的存储空间的大小是( B )。

A. 64k B. 1M

C. 256 D.16M

10、若用 128K*4bit 的SRAM 芯片构成640KB 的存储器组织,共需要( A )片芯片。

A. 10 B. 20 C. 30 D. 40

11、在CMP AX,DX 指令执行后,当标志位 SF,OF,ZF 满足逻辑关系(SF⊕OF)+ZF=0

时,表明( A )。

A. AX >DX B. AX<DX C. AX≥DX D. AX≤DX

12、若要使寄存器AL 中的高4 位不变,低4 位清零,应使用指令( B )。

A. AND AL,0FH B. AND AL,0F0H

C. OR AL,0FH D. OR AL,0F0H

13、8259A 需( A ) 片级连可以扩展为64 级优先级。

A. 9 片 B. 8 片 C. 7 片 D. 6 片

14、8253 是可编程定时.计数器芯片,它内部有( A )。

A.三个定时器 B.四个定时器

C.二个计数器 D.四个计数器

15、8086/8088 中除( C )两种寻址方式外,其它各种寻址方式的操作数均在存储器中。

A.立即寻址和直接寻址 B. 寄存器寻址和直接寻址

C. 立即寻址和寄存器寻址 D. 立即寻址和寄存器相对寻址

16、通常所说的 32位机,指的是这种计算机的CPU( B )。

A. 是由 32个运算器组成的 B. 能够同时处理 32位二进制数据

C. 包含有 32个寄存器 D. 一共有 32个运算器和控制器

17、相邻段地址之间的最小距离为( A )

A.16 个字节 B.64K 字节

C.1K 字节 D.256 字节

18、若CPU 的地址线为共16 条,而某存储器芯片单元为2K,则加在该存储器芯片上的地

址线为 ( A ) 。

A. A0 ~ A10 B. A0 ~ A11 C. A0 ~ A12 D. A0 ~ A13

19、8088 系统对中断请求响应优先级最低的请求是( B ) 。

A. NMI B. 单步中断 C. 除法错中断 D. INTR

20、微型计算机在硬件上是由( A )四大部分分组成。

A. 微处理器、存储器、I/O 接口和总线 ;

B. ALU、寄存器组、程序计数器和指令系统 ;

C. 微处理器、存储器、输入设备、输出设备 ;

D. 主板、硬盘、键盘、显示器 ;

21、8086 CPU的 NMI 引脚上输入的信号是( B )

A.可屏蔽中断请求 B.非屏蔽中断请求

C.中断相应 D.总线请求

22、在数据传送指令中要注意:立即数只能作为( A )。

A. 源操作数 B. 目的操作数

C. 源操作数和目的操作数 D.源操作数或目的操作数

23、EPROM 是指 ( D )

A.随机读写存储器 B.可编程只读存储器

C.只读存储器 D.可擦除可编程只读存储器

24、在数据传输率相同的情况下,同步字符串送的速度高于异步字符传输,其原因是( D )

A.字符间无间隔 B.双方通信同步

C.发生错误的概率少 D.附加位信息总量少

25、当使用串处理指令CMPSW 寻找两串中的不同数据时,应使用重复前缀为( C )。

26、8086/8088的一个典型总线周期需要( A )个 T 状态。

A.4 B.3

C.2 D.1

27、堆栈的工作方式是( D ) 。

A.先进先出 B.随机读写

C.只能读出不能写入 D.后进先出

28、下列四条指令中正确的是( C )

(1)MOV BL,CX (2)MOV DS,AX

(3)MOV [BX],[DI] (4)CMP AX,1234H

A.(1)与(2) B.(2)与(3)

C.(2)与(4) D.(1)与(3)

29、CPU 与外设间数据传送的控制方式有( D )

A.中断方式 B.程序控制方式

方式 D.以上三种都是

填空题

1、完成下面不同数制之间的转换

73.25D=01001001.01B, 10010010B=92H

100101.11B=37.75D=(0011 0111.0111 0101)BCD

2、二进制数 1.101 转换为十六进制数为____5E4.A _____H。

3、堆栈操作时,一次数据入栈,堆栈指针__-2__;一次数据出栈,堆栈指针___+2___。

4、8086 系统中的汇编语言程序可以使用四个段,程序运行时,四个段的基地址分别放在

__CS__、__DS__、__ES__及__SS___。

5、若某中断向量为 10H, 则该中断的中断服务子程序的入口地址在中断向量表中的物理

地址范围为___40H_____~____43H__。

6、在8088系统中五片中断控制器8259可控制____36_个中断源。

7、串行通信有两种基本的通信方式,分别是____同步___和_____异步___。

8、8086CPU对 I/O端口的编址是采用___独立编址____方式。

9、8259 可编程中断控制器可以进行级联,其级联是通过___ 1_____管脚实现的。

此时,主 8259 应接__从 8259 的CAS 管脚______。

10、8086/8088 CPU 的数据线和地址线是以____分时复用____方式轮流使用的。

11、8088CPU的地址总线有______20____条,最大内存空间为____1M______,物理地址是

由__段地址___和___偏移地址__形成的。

12、外部设备是通过_____ INTR ___引脚向 CPU 请求服务的,而 CPU 是通过__INTA ____

给外设应答。

13、执行INT 04H 后,中断服务程序入口地址的 CS 在_12H__, __13H___ 单元,IP 在

__10H__, __11H__单元中。

14、若三片8259 级联,从片分别连接在主片的 IR2和 IR5上,则主8259A的ICW3 为

____00100100___B。

15、已知80386 计算机的地址线为 32根,它可直接访问的存储空间是___4G ____B。

16、8255 有两个控制字,它们分别是_____方式控制字____和___ C 口置0/置1 控制字

_____。

17、每片8255 包括三个八位并行口,其中__ A _ 可工作在方式 2,又可工作在方式 1。

18、对字符串操作时,__ DS:SI___指向源操作数,__ ES:DI ____指向目的操作数。

19、设[X]

=11100011,[Y]

=00110010,[X]

=____10011101___, [X-Y]

=___10110001____。

20、为保证DRAM 中内容不丢失,需要进行____刷新_____操作。

21、变量具有三种属性,分别是 段属性 属性、__类型属性____属性和 偏移属性

属性。

22、汇编语言源程序需经过编辑、___汇编___和___连接___,最后才能运行。

23、[A+B]

=10011101,则A+B 的真值为____-99_____D。

24、指令 MOV AL, BL 对源操作数来说是__寄存器方式__寻址方式,

MOV AX, [BX+6]对源操作数来说是____寄存器相对方式_____寻址方式,

MOV AX, DS:[2000H]对源操作数来说是____直接寻址方式____寻址方式。

25、已知(AL)=0101110lB,执行指令 NEG AL 后再执行 CBW,(AX )=__ 0FFA3H

8、设 SS=1000H,SP=3000H,AX=128AH ,CX=0931H 则执行下列指令后

PUSH AX

PUSH CX

POP AX

SS=_____1000H___,SP=___2FFFH_____,

AX=____0931H____,CX=___0931H_____。

26、在8086 CPU 系统中,设某中断源的中断类型码为08H,中断矢量为0100H:1000H,

则相应的中断矢量存储地址为__00020H ____;从该地址开始,连续的4个存储单元存放的

内容依次为__00H____、___10H___、___00H___、 ___01H___。

27、如果一个程序在执行前 (CS)=86F0H,(IP)=2000H,该程序的起始地址是

___88F00____H。

判断题(错误的要指出错误的原因或进行修改)

1、MOV 2787H,AX

× 在MOV指令中,立即数不能作为目的操作数。

2、MOV 1234H,AX

× 在MOV指令中,立即数不能作为目的操作数。

3、MOV [2787H],AX

4、SAL BX,2

× 移位指令中,移位的位数大于1,必须先将移位位数置于CL中,在移位指令中用

5、SAL BX,5

× 移位指令中,移位的位数大于1,必须先将移位位数置于CL中,在移位指令中用

CL指定移位位数。

6、POP CS

× CS不能作为目的操作数。

7、MOV AX,BL

× 两操作数类型不一致。

8、POP CS

× CS不能作为目的操作数。

9、MOV 2347H,AX

× 目的操作数不能是立即数

10、MOV AX,BL

× 两操作数类型不一致。

11、MOV [1234H],AX

CS,AX

× CS不能作为目的操作数。

13、在堆栈中,栈底在高地址端,而栈顶在低地址端,因此在压栈操作中堆栈地址由高向低

变化。

14、工作于最小模式的8086微处理系统中,没有8087芯片。

15、8086CPU的内部结构主要有两个单元,其中BIU主要负责取指令以及与存储器和I/O接

口传送信息,而EU则负责执行指令。

简答与分析题

1、解释:无条件传送方式

无条件传送是最简单的数据传送方式。当外设的数据传送是定时的,且时间是已知

的情况下,CPU 定时取入数据,而当CPU 去取

2、a.在8086 存储器中存放数据时有规则字与非规则字之分,请说明它们的区别?

b. 在读总线周期中,各时钟周期所完成的任务。如果外设没准备好,应在哪个时钟周期

插入什么时钟周期?

答案:a.规则字存放在偶数地址开始的两个存储单元中,读写用一个时钟周期就可完成。

非规则字存放在奇地址开始的两个存储单元中,读写需要两个时钟周期。

b. T1 周期向地址总线发送地址;T2T3 周期读写数据;T4 周期结束。 如果外设没准备

好在T3 周期插入Tw 周期。

3、什么是中断向量表?简述CPU如何得到中断类型为N的中断向量?

答案:在8086系统中,把系统中256个中断向量依次存放在内存最低端的1024字节中(每

个中断向量由2字节的段内偏移量和2字节的段基值组成,256个中断向量共占1024字节),

这1024字节的中断向量在内存中所占区域称为“中断向量表”。表首地址为0000H:0000H,

即00000H。

当中断源将中断类型码N送入CPU后,CPU将N乘4作为“中断向量表的地址指

针”去查中断向量表,从该地址指针处取出4个字节,其中前2个字节送IP,后2个字节

送CS,则程序就转入该中断向量所指向的中断服务程序入口,执行该中断服务程序。

4、类型码为 4 的中断是什么类型的中断,它的中断服务程序入口地址放在什么地方?试

说明它的存放格式。

1、溢出中断 0000H~0010H

5、简述中断与子程序调用之间的区别。并简要说明8259A 中断控制器中的 和 IMR

三个寄存器的功能。

答案:中断段间调用而子程序可以段间或段内,IRR 记录中断请求状况.有请求相应

的位置 1 , ISR 记录中断服务状况.有服务相应的位置 1 ,IMR 记录中断屏蔽状况.有

屏蔽相应的位置 1。

6、执行下列指令后,AX 寄存器中的内容是什么?

TABLE DB 10,20,30,40,50

ENTRY DW 3

MOV BX,OFFSET TABLE

ADD BX,ENTRY

MOV AX,[BX]

HLT

答案:AX)=3228H

7、下图为 SRAM6116 芯片与 8088 系统总线的连接图

(1) 写出6116 芯片的存储容量;

(2) 分析每片6116 所占的内存地址范围。

答案:(1)6116 芯片的存储容量是2k*8bit

(2)第一片6116 的内存地址范围是F1000H~F17FFH

第二片 6116 的内存地址范围是F1800H~F1FFFH

CSEG ENDS

END BEGIN

8、在8086系统中,试用4K×8位的2732及74LS138译码器,构成一个32K×8的RAM,

画出硬件连接图,并写出每片地址范围。

答案:(1)8K×8 芯片片内地址线 13 条

32K×8 矩阵地址线 15 条

所以组间地址线2 条

(2)四组芯片的地址分别是 0000H-1FFFH 、2000H-3FFFFH 、4000H-5FFFH 、

6000H-7FFFH

(3)电路图如下

9、设系统中8253 端口地址为 40H-43H,画出译码电路,编程对其作如下设置。

(1)计数通道 0 工作在方式 0,二进制计数,计数初值 30H。

(2)计数通道 1 工作在方式 3,BCD码计数,计数初值 9080。

其中, 控制字格式如下:

答案: 译码电路如下:

(1)格式字:00010000B

Mov al,10H

Out 43H,al

Mov al,30H

Out 40H,al

(2 )格式字:01110111B

Mov al,77H

Out 43H,al

Mov ax,9080H

Out 41H,al

Mov al,ah

10、完成指令序列

a. 用减法指令实现 789ABCH- 123456H

b. 将DX 寄存器的D1、D4、D6、D9、D10位屏蔽,其余位不变。

答案: a.MOV AX,9ABCH

SUB AX,3456H

MOV DX,78H

SBB DX,12H

b.AND DX,11111B

11、某系统中的 8253 芯片的通道 0-3 和控制端口地址分别为 0FFF0H-0FFF3H,定义

通道 0 工作在方式 2,CLK =2MHz。要求:输出OUT为 1KHz的波特率;定义通道 1 工

作在方式0,其CLK1输入外部计数事件,每计满 1000 个向CPU发出请求。请写出通道0

和通道1的初始化程序,并画出电路图。

答案:

Mov dx,0FFF6H

Mov al,35H

Out dx,al

Mov ax,2000h

Mov dx,0FFF0H

Out dx,al

Mov ah,al

Out dx,al

Mov dx,0FFF6H

Mov al,71H

Out dx,al

Mov ax,1000D

Mov dx,0FFF2H

Out dx,al

Mov ah,al

Out dx,al

12、用8253 实现每隔 1s 产生一个负脉冲,已知 8253 的时钟频率为2MHZ。

(1)写出8253 的端口地址;(2)编写8253 的初始化程序。

8253控制字格式如下:

答案: (1) 8253 的端口地址为DF80H,DF81H,DF82H,DF83H

(2) 1/2MHz=0.5us 0.1s/0.5us=2000000>65535,应采用两个计数器级联,可

定义0#

计数器工作在方式3 (方波发生器),计数初值为20000,1#计数器工作在方式 2 (频率

发生

器),计数初值为 100。

MOV DX,0DF83H

MOV AL,00110110B

OUT DX,AL

MOV AL,01010100B

OUT DX,AL

MOV DX,0DF80H

MOV AX,20000

OUT DX,AL

MOV AH,AL

OUT DX,AL

MOV DX,0DF81H

MOV AL,100

OUT DX,AL

13、设内存DATA1 和DATA2 开始分别存放50 个无符号字数据,编制程序

将两个存储区对应字数据求和并存入 SUM 开始的单元(用完整汇编程序完成)。

答案: DSEG SEGMENT

DATA1 DW 34,23,67,0……

DATA2 DW 90,67,45,32……

SUM DW 50 DUP(?)

DSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG ,CS:CSEG

BEGIN:MOV AX,DSEG

MOV DS,AX

LEA SI,DATA1

LEA DI,DATA2

LEA BX,SUM

MOV CX,50

AGAIN:MOV AX,[SI]

ADD AX,[DI]

MOV [BX],AX

INC SI

INC SI

INC DI

INC DI

INC BX

INC BX

LOOP AGAIN

MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

14、已知DATA 单元开始存放一组无符号的字节数据,数据长度在CNT 单元

存放。编制程序:检查该组数据中是否存在数据 100,若存在,则在显示器上显示“Y”,

否则显示 “N”。(用完整汇编程序完成)。

答案:

DSEG SEGMENT

DATA DB 32,45,67,78,100……

CNT DB ?

DSEG SEGMENT

CSEG SEGMENT

ASSUME DS:DSEG,CS:CSEG

BEGIN:MOV AX,DSEG

MOV DS,AX

MOV CX,CNT

MOV DI,OFFSET DATA

AGAIN:MOV AL,[DI]

CMP AL,100

JZ HAVE

INC DI

LOOP AGAIN

MOV DL,‘N’

MOV AH,2

INT 21H

JMP OVER

HAVE:MOV DL,‘Y’

MOV AH,2

INT 21H

OVER:MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

15、用完整的汇编程序完成:在以 DAT 为首地址的字缓冲区中存有一批字数据,以“*”

作为结束,编程找出其最大值,结果存入RSLT 单元。

答案:DSEG SEGMENT

DAT DW 89,300,213,567,0,-89,-987„„’*’

RSLT DW ?

DSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG, CS:CSEG

BEGIN:MOV AX, DSEG

MOV DS, AX

LEA SI, DAT

MOV AX, [SI]

CMP AX, ‘*’

JZ OVER

AGAIN: INC SI

INC SI

MOV DX,[SI]

CMP DX,’*’

J Z OVER

CMP AX,DX

JGE AGAIN

MOV AX, DX

JMP AGAIN

OVER: MOV RSLT ,AX

MOV AH,4CH

INT 21H

CSEG ENDS

END BEGIN

二、填空题

1、对于R进制数来说,其基数(能使用的数字符号个数)是 R个 ,

能使用的最小数字符号是 0 。

1、 2、十进制数72转换成八进制数是 110Q

3、与十进制数67等值的十六进制数是 43H 。

1、 4、二进制数101.011转换成十进制数是 5.375

2、 5、十六进制数0E12转换成二进制数是 11B

三、选择题

1、在计算机内部,一切信息的存取、处理和传送都是以 D 形式进行

的。

A)EBCDIC码 B)ASCII码 C)十六进制编码 D)二进制编码

2、与十进制数56等值的二进制数是 A 。

A)111000 B)111001 C)101111 D)110110

3、十进制数59转换成八进制数是 A 。

A)73Q B)37Q C)59Q D)112Q

4、与十进制数58.75等值的十六进制数是 B 。

A) B) C)3A.23H D)C.3AH

5、二进制数1101.01转换成十进制数是 C 。

A)17.256 B)13.5 C)13.25 D)17.5

6、二进制数111010.11转换成十六进制数是 B 。

A)3ACH B) C)3A3H D)3A.3H

7、十六进制数1CB.D8转换成二进制数是 D 。

A)110001011.11001 B)111101011.11101

C)111101011.11101 D)111001011.11011

8、将十六进制数FF.1转换成十进制数是 C 。

A)255.625 B)2501625 C)255.0625 D)250.0625

9、十进制正数43的八位二进制原码 B 。

A)00110101 B)00101011 C)10110101 D)10101011

10、十进制正数38的八位二进制补码是 D 。

A)00011001 B)10100110 C)10011001 D)00100110

四、是非判断题

1、在第三代计算机期间出现了操作系统。 ( √ )

2、对于种类不同的计算机,其机器指令系统都是相同的。(× )

3、在计算机中,数据单位bit的意思是字节。 ( × )

4、八进制数的基数为8,因此在八进制数中可以使用的数字符号是0、1、2、3、4、5、

6、7、8。( × )

5、在汉字国标码GB2312-80的字符集中,共收集了6763个常用汉字。(√ )

答案:

一、问答题

1、(1)0AH (2)51H (3)20H

2、(1)0~255 (2)0.996094 (3)0~65535 (4)-32768~32767

3、16

4、(1)X1=1 (2)X1∨ X2 ∨ X3=1

5、(1)X>Y (2)X

二、填空题

3、 R个,0

4、 110Q

5、 43H

6、 5.375

7、 11B

三、选择题

1、D 2、A 3、A 4、B 5、C 6、B 7、D 8、C 9、B 10、D

四、是非判断题

1、√ 2、× 3、× 4、× 5、√

1. 微处理器,微型计算机和微型计算机系统三者之间有何区别?

答:微处理器即CPU,它包括运算器、控制器、寄存器阵列和内部总线等部分,用于实现

微型计算机的运算和控制功能,是微型计算机的核心;一台微型计算机由微处理器、内存储

器、I/O接口电路以及总线构成;微型计算机系统则包括硬件系统和软件系统两大部分,其

中硬件系统又包括微型计算机和外围设备;由此可见,微处理器是微型计算机的重要组成部

分,而微型计算机系统又主要由微型计算机作为其硬件构成。

2. CPU在内部结构上由哪几部分构成?CPU应具备哪些主要功能?

答:CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要

功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备

传递和暂存数据的功能。

3. 累加器和其它通用寄存器相比有何不同?

答:累加器是通用寄存器之一,但累加器和其它通用寄存器相比又有其独特之处。累加器除

了可用做通用寄存器存放数据外,对某些操作,一般操作前累加器用于存放一个操作数,操

作后,累加器用于存放结果。

4. 微型计算机的总线有哪几类?总线结构的特点是什么?

答:微型计算机的总线包括地址总线、数据总线和控制总线三类,总线结构的特点是结构简

单、可靠性高、易于设计生产和维护,更主要的是便于扩充。

5. 举出10个微型计算机应用的例子。

答:略

6. 计算机I/O接口有何用途?试列出8个I/O接口。

答:计算机I/O接口是连接计算机和外部设备的纽带和桥梁,它主要用于协调和控制计算机

与外设之间的信息流通和交换。例如:串行通讯口(COM口)、并行打印机口、软盘驱动

器接口、硬盘驱动器接口、光驱接口、显示器接口、音响设备接口、其它通用设备接口(U

SB、SCSI等)。

7. 现在,计算机主板上一般都包括哪些I/O接口?I/O接口卡如何与主板相连?

答:现在,计算机主板上一般包括串行通讯口、并行打印口、软盘驱动器接口、硬盘驱动器

接口、光驱接口、USB接口等。象显示器适配器、网卡、modem卡等I/O接口卡一般通过

总线插槽与主板相连。

8. 简述系统总线,AGP总线,PCI总线及ISA总线的作用。

答:系统总线是CPU与存储器及桥接器之间传递信息的通道,AGP总线专门用与连接CP

U与显示器适配器,PCI总线一般用于连接一些高速外设接口作为高速外设与CPU或内存

交换信息的通道,而ISA总线一般用于连接一些非高速外设接口作为非高速外设与CPU或

内存交换信息的通道。

9. 试说明计算机用户,计算机软件,计算机硬件三者的相互关系。

答:计算机用户,计算机软件系统,计算机硬件系统共同构成一个计算机应用系统,三者在

该系统中处于三个不同的层次。计算机用户处于最高层,计算机软件处于中间层,计算机硬

件系统处于最下层。在这里计算机用户是系统的主宰,他们通过软件系统与硬件系统发生关

系,指挥计算机硬件完成指定的任务。即,计算机用户使用程序设计语言编制应用程序,在

系统软件的干预下使用硬件系统进行工作。

10. 简述DOS操作系统各部分的作用及相互关系。

答:DOS操作系统包括3个模块:DOS-Shell()、DOS-Kernel(IBMDOS.

COM)、DOS-BIOS().

DOS-Shell模块对用户输入的DOS命令行或应用程序行作出响应。即负责DOS命令的解

释和任务的分配,具体工作则要靠DOS-Kernel模块所提供的系统功能完成。

DOS-Kernel模块尽管提供了许多的系统功能,但由于执行每一个系统功能过程中,完

全依赖各种设备实现指定的功能,因此,它还要进一步调用DOS-BIOS模块中的设备驱动

程序才能工作。

DOS-BIOS模块对DOS-Kernel传送的"请求"进行解释,最终转换为对固化在ROM-BI

OS中的设备控制程序的请求并由它们去控制硬件,完成指定的操作。

11. 存储单元的选择由什么信号控制?读、写靠什么信号区分?

答:存储单元的选择由地址信号控制,而对存储单元进行读操作还是写操作则要靠读、写信

号区分。

12. 以一个可执行文件的运行为例,简述程序执行过程。

答:当在DOS提示符下键入一个可执行文件名称(或在其它操作系统环境下执行有关操作)

后,操作系统自动将该文件从外存装入内存并使指令指针指向其第一条指令,从而启动文件

执行过程。首先将第一条指令从内存取入CPU中译码执行,同时指令指针自动加1或按指

令的要求作出相应改变,指向下一条要执行的指令,接着将下一条指令从内存取入CPU译

码执行,这样不断重复取指令和执行指令的过程,逐条执行指令,直至程序结束。

1.把下列各数化成二进制数和八进制数(二进制取3位小数,八进制取一位小数): 7+3/4,

±3/64,73.5, 725.9375,25.34

答:7+3/4=111.110B; 7+3/4=7.6O; ±3/64=±0.000B; ±3/64=±0.0O; 73.5=1001001.1

00B; 73.5=111.4O;

725.9375=1011010101.111B; 725.9375=1325.7O; 25.34=11001.011B; 25.34=31.3O

2.把下列各数化成十进制数:101.10011B ,22.2O, AD.4H

答:101.10011B=5.59375; 22.2O=18.25; AD.4H=173.25

3.完成下列二进制数运算:101.111+11.011,1001.10-110.01,101.11*11.01, 1011101

11/1101

答:101.111+11.011=1001.01; 1001.10-110.01=11.01;

101.11*11.01=10010.1011; 101110111/1101=11100.11

4.完成下列各十六进制数的运算: A39E+28DC,D5AB-7CE5,2BF*4C,C16E/3A

答:A39E+28DC=CC7A; D5AB-7CE5=58C6; 2BF*4C=D0B4; C16E/3A=355.C2

5.先将15B*8E/2A中的十六进制数化成十进制数,再进行计算,最后再将结果化为十六进

制数。

答:15BH*8EH/2AH=347*142/42=49274/42=1173.19=495.30AH

6.试分别判断下列各组数据中哪个数据最大?哪个数据最小?

(1) A=0.1001B,B=0.1001D,C=0.1001H

(2) A=10111101B,B=1001D,C=111H

答:(1) A最大, C最小; (2) B最大, A最小;

1.写出下列各数的二进制原码和补码(最后两个用双字节): 0,96,-128,-38H,127,10

5,879H,-32768

答:上述各数的原码依次为:00000000(10000000), 01100000, 无, 10111000, 0111

1111, 01101001, 1001, 无;

上述各数的补码依次为:00000000, 01100000, 10000000, 11001000, 011111

11, 01101001, 1001, 1000;

2.分别列出下述10进制数的16进制数、非压缩的BCD数、压缩的BCD数、ASCII数字

串(用16进制形式写出):10, 64, 78, 81, 92, 100, 125, 255

答:上述各数的16进制数依次为:AH,40H,4EH,51H,5CH,64H,7DH,FFH;

上述各数的非压缩的BCD数依次为:0100H,0604H,0708H,0801H,0902H,010000H,

010205H,020505H;

上述各数的压缩的BCD数依次为:10H,64H,78H,81H,92H,0100H,0125H,0255H;

上述各数的ASCII数字串依次为:3130H,3634H,3738H,3831H,3932H,313030H,3132

35H, 323535H;

3.用10进制数写出下列补码表示的机器数的真值:71H,1BH,80H,F8H,397DH,CF4

2H,9350H

答:上述补码表示的各机器数的真值用10进制数分别表示为: +113,+27,-128,-8,+14717,-

20670,-27828

4.若用一个字节来表示带符号数,判断下列各运算在机内进行时是否会产生溢出,写出判断

过程。

A. 5BH+32H; B. -08H-15H; C. -51H+(-3DH); D. 2DH+3CH

答:A. 产生溢出, 5BH=01011011B其补码表示的机器数为:01011011

32H=00110010B其补码表示的机器数为:00110010

相加的结果为:10001101

数值最高位向符号位进位,但符号位向前无进位,故产生溢出。

B. 不产生溢出, -08H=-00001000B其补码表示的机器数为:11111000

-15H=-00010101B其补码表示的机器数为:11101011

相加的结果为:111100011

数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出.

C.产生溢出,-51H=-01010001B其补码表示的机器数为:10101111

-3DH=-00111101B其补码表示的机器数为:11000011

相加的结果为:101110010

数值最高位向符号位无进位,但符号位向前进位,故产生溢出.

D.不产生溢出,2DH=00101101B其补码表示的机器数为:00101101

3CH=00111100B其补码表示的机器数为:00111100

相加的结果为:01101001

数值最高位向符号位无进位,符号位向前也无进位,故不产生溢出。

5.从键盘敲入一个大写字母,如何转换为与其相对应的小写字母?从键盘敲入16进制数字

符0~F,如何转换为其相对应的二进制数(00000000~00001111)?

答:从键盘敲入一大写字母后,将其ASCII码加上20H,就转换成了与其相对应的小写字母。

从键盘敲入16进制数字符0~9后,将其ASCII码值减去30H,就转换成了与其相对应的

二进制数.

从键盘敲入16进制数字符A~F后,将其ASCII码值减去37H,就转换成了与其相对应的

二进制数.

6.详细叙述总线缓冲器的作用。

答:总线缓冲器的作用主要是控制各路数据在总线上的交叉传送避免相互冲突,当几路数据

都要向总线上传送时,就通过各路的缓冲器来解决,当一路传送时,缓冲器使其它各路数据

与总线断开。

7.锁存器和寄存器有什么不同?

答:锁存器与寄存器都是用来暂存数据的器件,在本质上没有区别,不过寄存器的输出端平

时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),

而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状

态锁存起来,使其不再随输入端的变化而变化。

1.8086从功能上分成了EU和BIU两部分。这样设计的优点是什么?

答:传统计算机在执行程序时,CPU总是相继地完成取指令和执行指令的动作,

即,指令的提取和执行是串行进行的。而8086CPU 在功能上分成了EU和BIU两

部分,BIU负责取指令,EU负责指令的执行,它们之间既互相独立又互相配合,

使得8086可以在执行指令的同时进行取指令的操作,即实现了取指令和执行指

令的并行工作,大大提高了CPU和总线的利用率,从而提高了指令的处理速度。

2.8086 CPU中地址加法器的重要性体现在哪里?

答:地址加法器是8086 CPU的总线接口单元中的一个器件,在8086存储器分段

组织方式中它是实现存储器寻址的一个关键器件,地址加法器将两个16位寄存

器中的逻辑地址移位相加,得到一个20位的实际地址,把存储器寻址空间从64

K扩大到1M,极大地扩大了微型计算机的程序存储空间,从而大大提高了程序运

行效率。

3.8086 CPU中有哪些寄存器?分组说明用途。哪些寄存器用来指示存储器单元

的偏移地址?

答:8086 CPU中有8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI;两个控

制寄存器IP、FL;四个段寄存器CS、DS、SS、ES。8个通用寄存器都可以用来

暂存参加运算的数据或中间结果,但又有各自的专门用途。例如,AX专用做累

加器,某些指令指定用它存放操作数和运算结果;CX为计数寄存器,在某些指

令中做计数器使用;DX为数据寄存器;BX为基址寄存器,BP为基址指针,SI

为源变址寄存器,DI为目的变址寄存器,这4个寄存器在数据寻址中用来存放

段内偏移地址(有效地址)或段内偏移地址的一部分;SP为堆栈指示器,用来

存放栈顶有效地址。两个控制寄存器用来存放有关的状态信息和控制信息。例如,

标志寄存器FL用来存放状态标志和控制标志;而指令指针用来存放下一条要取

指令的有效地址。四个段寄存器用来存放段地址。例如,CS寄存器用来存放代

码段的段地址;DS寄存器用来存放数据段的段地址;SS寄存器用来存放堆栈段

的段地址;ES寄存器用来存放扩展段的段地址。

4.8086系统中存储器的逻辑地址由哪两部分组成?物理地址由何器件生成?如

何生成?每个段的逻辑地址与寄存器之间有何对应关系?

答:8086系统中存储器的逻辑地址由段地址(段首址)和段内偏移地址(有效

地址)两部分组成;存储单元的物理地址由地址加法器生成,寻址时,CPU首先

将段地址和段内偏移地址送入地址加法器,地址加法器将段地址左移4位并与段

内偏移地址相加,得到一个20位的物理地址。数据段的段地址在DS寄存器中,

段内偏移地址可能在BX、BP、SI或DI寄存器中。代码段的段地址在CS寄存器

中,段内偏移地址在IP寄存器中。堆栈段的段地址在SS寄存器中,段内偏移地

址在SP寄存器中。扩展段的段地址在ES寄存器中,段内偏移地址可能在BX、B

P、SI或DI寄存器中。

5.设CPU中各有关寄存器的当前状况为:SS=0a8bH、DS=17ceH、CS=dc54H、BX=

394bH、IP=2f39H、SP=1200H,BX 给出的是某操作数的有效地址,请分别写出

该操作数、下一条要取的指令及当前栈顶的逻辑地址和物理地址。

答:该操作数的逻辑地址为DS:BX=17CE:394BH,物理地址=17CEH*10H+394BH=

1B62BH;下一条要取的指令的逻辑地址为CS:IP=DC54:2F39H,物理地址=DC54

H*10H+2F39H=DF479H;当前栈顶的逻辑地址=SS:SP=0A8B:1200H,物理地址=0

A8BH*10H+1200H=0BAB0H。

6.若DS=157DH时,某操作数的物理地址是215FAH,当DS=18DEH时,该操作数

的物理地址是多少?

答:该操作数的段内偏移地址=该操作数的物理地址-DS=215FAH-157D0H=BE2AH,

故当DS=18DEH时,该操作数的物理地址=DS*10H+BE2AH=18DE0H+BE2AH=24C0AH

7.设 AX=2875H、BX=34DFH、SS=1307H、SP=8H,依此执行 PUSH AX、PUSH BX、

POP AX、POP CX后栈顶指针变为多少?AX=? BX=? CX=?

答:当前栈顶指针=SS*10H+SP=13070H+8H=13078H,依此执行PUSH AX、PUSH BX、

POP AX、POP CX后栈顶指针仍为13078H。但AX=34DFH,BX=34DFH,CX=2875H。

1. 假定(BX)=637DH,(SI)=2A9BH,位移量D=3237H,试确定在以下各种寻

址方式下的有效地址是什么?

(1)立即寻址

(2)直接寻址

(3)使用BX的寄存器寻址

(4)使用BX的间接寻址

(5)使用BX的寄存器相对寻址

(6)基址变址寻址

(7)相对基址变址寻址

答:(1)立即数寻址的有效地址是当前IP的内容;

(2)直接寻址,若使用位移量D=3237H进行,则有效地址为3237H;

(3)使用BX的寄存器寻址时,操作数在BX寄存器中,因此无有效地址;

(4)使用BX的间接寻址时,有效地址在BX寄存器中,即有效地址=637DH;

(5)使用BX的寄存器相对寻址的有效地址=(BX)+D=637DH+3237H=95B4H;

(6)基址变址寻址的有效地址=(BX)+(SI)=637DH+2A9BH=8E18H;

(7)相对基址变址寻址的有效地址=(BX)+(SI)+D=C050H;

2. 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用

以下几种寻址方式:

(1)寄存器间接寻址

(2)寄存器相对寻址

(3)基址变址寻址

答:(1)使用寄存器间接寻址,把首地址为BLOCK的字数组的第6个字送到DX

寄存器的指令为:

MOV BX,BLOCK

ADD BX,12

MOV DX,[BX]

(2)使用寄存器相对寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存

器的指令为:

MOV BX,BLOCK

MOV DX,[BX+12]

(3)使用基址变址寻址,把首地址为BLOCK的字数组的第6个字送到DX寄存器

的指令为:

MOV BX,BLOCK

MOV SI,12

MOV DX,[BX+SI]

3. 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34

H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B

7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,1200H

(2)MOV AX,BX

(3)MOV AX,[1200H]

(4)MOV AX,[BX]

(5)MOV AX,[BX+1100]

(6)MOV AX,[BX+SI]

(7)MOV AX,[BX+SI+1100]

答:(1)指令MOV AX,1200H执行完后AX寄存器的内容为1200H;

(2)指令MOV AX,BX执行完后AX寄存器的内容为0100H;

(3)指令MOV AX,[1200H]是将从物理地址=(DS)*10H+1200H=21200H开始

的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(4)指令MOV AX,[BX]是将从物理地址=(DS)*10H+(BX)=20100H开始的

两个单元内容送AX,故执行完后AX寄存器的内容为3412H;

(5)指令MOV AX,[BX+1100]是将从物理地址=(DS)*10H+(BX)+1100H=2

1200H开始的两个单元内容送AX,故执行完后AX寄存器的内容为4C2AH;

(6)指令MOV AX,[BX+SI]是将从物理地址=(DS)*10H+(BX)+(SI)=20

102H开始的两个单元内容送AX,故执行完后AX寄存器的内容为7856H;

(7)指令MOV AX,[BX+SI+1100]是将从物理地址=(DS)*10H+(BX)+(SI)

+1100H=21202H开始的两个单元内容送AX,故执行完后AX寄存器的内容为65B7

H;

4.假设已知(DS)=2900H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)= 0100H,(B

P)=0010H,数据段中变量名VAL的偏移地址值为0050H,试指出下列源操作数字

段的寻址方式是什么?其物理地址值是多少?

(1) MOV AX,0ABH (2) MOV AX,BX

(3) MOV AX,[100H] (4) MOV AX,VAL

(5) MOV AX,[BX] (6) MOV AX,ES:[BX]

(7) MOV AX,[BP] (8) MOV AX,[SI]

(9) MOV AX,[BX+10] (10) MOV AX,VAL[BX]

(11) MOV AX,[BX][SI] (12) MOV AX,[BP][SI]

答:(1)在指令 MOV AX,0ABH 中,源操作数字段的寻址方式是立即数寻址,

其物理地址值=(CS)*10H+(IP);

(2)在指令 MOV AX,BX 中,源操作数字段的寻址方式是寄存器寻址,操作

数在BX中,无物理地址;

(3)在指令 MOV AX,[100H] 中,源操作数字段的寻址方式是直接寻址,其

物理地址值=(DS)*10H+100 =29000H+100H=29100;

(4)在指令 MOV AX,VAL 中,源操作数字段的寻址方式是直接寻址,其物理

地址值=(DS)*10H+50H =29000H+50H=29050H;

(5)在指令 MOV AX,[BX] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(DS)*10H +(BX)=29000H+100H=29100H;

(6)在指令 MOV AX,ES:[BX] 中,源操作数字段的寻址方式是寄存器间接

寻址,其物理地址值=(ES)*10H+(BX)=21000H+100H=21100H;

(7)在指令 MOV AX,[BP] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(SS)*10H +(BP)=15000H+10H=15010H;

(8)在指令 MOV AX,[SI] 中,源操作数字段的寻址方式是寄存器间接寻址,

其物理地址值=(DS)*10H +(SI)=29000H+0A0H=290A0H;

(9)在指令 MOV AX,[BX+10] 中,源操作数字段的寻址方式是寄存器相对寻

址,其物理地址值=(DS)*10H+(BX)+0AH= 29000H+100H+0AH =2910AH;

(10)在指令 MOV AX,VAL[BX] 中,源操作数字段的寻址方式是寄存器相对

寻址,其物理地址值=(DS)*10H+(BX)+50H= 29000H+100H+50H= 29150H;

(11)在指令 MOV AX,[BX][SI] 中,源操作数字段的寻址方式是基址变址寻

址,其物理地址值=(DS)*10H+(BX)+(SI) =29000H+100H+0A0H =291A0H;

(12)在指令 MOV AX,[BP][SI] 中,源操作数字段的寻址方式是基址变址寻

址,其物理地址值=(SS)*10H+(BP)+(SI)=15000H+10H+0A0H =150B0H

5.分别指出下列指令中的源操作数和目的操作数的寻址方式。

(1)MOV SI,200

(2)MOV CX,DATA[SI]

(3)ADD AX,[BX+DI]

(4)AND AX,BX

(5)MOV [SI],AX

(6)PUSHF

答:(1)目的操作数字段的寻址方式是寄存器寻址,源操作数字段的寻址方式

是立即数寻址;

(2)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是寄存器相对

寻址;

(3)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式是基址变址寻

址;

(4)目的操作数的寻址方式是寄存器寻址,源操作数的寻址方式也是寄存器寻

址;

(5)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器

寻址;

(6)目的操作数的寻址方式是寄存器间接寻址,源操作数的寻址方式是寄存器

寻址;

6.试述指令MOV AX,2010H和MOV AX,DS:[2010H] 的区别。

答:指令MOV AX,2010H是将立即数2010H送AX寄存器,而指令MOV AX,DS:[2

010H]是将DS段有效地址为2010H的两个单元的内容送AX。

7.写出以下指令中内存操作数的所在地址。

(1)MOV AL,[BX+5]

(2)MOV [BP+5],AX

(3)INC BYTE PTR [SI+3]

(4)MOV DL,ES:[BX+DI]

(5)MOV BX,[BX+SI+2]

答:(1)指令MOV AL,[BX+5]中内存操作数的所在地址=(DS)*10H+(BX)+5;

(2)指令MOV [BP+5],AX中内存操作数的所在地址=(SS)*10H+(BP)+5

和(SS)*10H+(BP)+6;

(3)指令INC BYTE PTR[SI+3]中内存操作数的所在地址=(DS)+(SI)+3;

(4)指令MOV DL,ES:[BX+DI]中内存操作数的所在地址=(ES)*10H+(BX)

+(DI);

(5)指令MOV BX,[BX+SI+2]中内存操作数的所在地址=(DS)*10H+(BX)+

(SI)+2和(DS)*10H+(BX)+(SI)+3;

8.判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一

条或多条指令)实现原错误指令((8)、(13)除外)期望实现的操作。

(1)MOV AL,BX (9)MOV ES,3278H

(2)MOV AL,SL (10)PUSH AL

(3)INC [BX] (11)POP [BX]

(4)MOV 5,AL (12)MOV [1A8H],23DH

(5)MOV [BX],[SI] (13)PUSH IP

(6)MOV BL,F5H (14)MOV [AX],23DH

(7)MOV DX,2000H (15)SHL AX,5

(8)POP CS (16)MUL AX,BX

答:(1)MOV AL,BX 错,源操作数为字类型,目的操作数为字节类型,二者不

一致。应改为:MOV AX,BX 或 MOV AL,BL ;

(2)MOV AL,SL 错,SI寄存器不能分为高8位和低8位使用,即没有SL寄存

器。应改为:MOV AX,SI

(3)INC [BX] 错,未指定操作数的类型。应改为:INC BYTE PTR [BX]

(4)MOV 5,AL 错,目的操作数使用了立即数,

在指令中一般不允许。应改为:MOV DS:[5],AL

(5)MOV [BX],[SI] 错,源操作数和目的操作数均为内存单元,不允许。

应改为:MOV AX,[SI]

MOV [BX],AX

(6)MOV BL,F5H 错,源操作数错,以A~F开头的数字前应加0。应改为:MOV

BL,0F5H

(7)MOV DX,2000H 正确。

(8) POP CS 错,不能将栈顶数据弹至CS中。

(9)MOV ES,3278H 错,立即数不能直接送ES寄存器。

应改为:MOV AX,3278H

MOV ES,AX

(10)PUSH AL 错,栈操作不能按字节进行。应改为:PUSH AX

(11)POP [BX] 正确。

(12)MOV [1A8H],23DH 错,源操作数是立即数,目的操作数必须使用寄存器指

出。应改为:

MOV BX,1A8H

MOV [BX],23DH

(13)PUSH IP 错,不能用IP寄存器做源操作数。

(14)MOV [AX],23DH 错,不能用AX寄存器间接寻址。应改为:MOV BX,AX

MOV [BX],23DH

(15)SHL AX,5 错,不能用大于己于1的立即数指出移位位数。应改为:

MOV CL,5

SHL AX,CL

(16)MUL AX,BX 错,目的操作数AX是隐含的,不能在指令中写出。应改为:

MUL BX

9.设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

(1)执行指令PUSH AX后 (SP)=?

(2)再执行PUSH BX及POP AX后 (SP)=?(AX)=?(BX)=?

答:(1)执行指令PUSH AX后 (SP)=2000H-2=1FFEH;

(2)再执行PUSH BX及POP AX后 (SP)=1FFEH, (AX)=5000H, (BX)=5000H

10.要想完成把[2000H]送[1000H]中,用指令:MOV [1000H],[2000H]是否正确?

如果不正确,应用什么方法?

答:把[2000H]送[1000H]中,用指令 MOV [1000H],[2000H]不正确,应改为:M

OV AX,[2000H] MOV [1000H],AX

11.假如想从200中减去AL中的内容,用SUB 200,AL是否正确?如果不正确,

应用什么方法?

答:想从200中减去AL中的内容,用SUB 200,AL不正确,应改为:

MOV BL,200 SUB BL,AL

12分别写出实现如下功能的程序段

(1)双字减法(被减数7B1D2A79H,减数53E2345FH)。

(2)使用移位指令实现一个字乘18的运算。

(3)使用移位指令实现一个字除以10的运算。

(4)将AX中间8位,BX低四位,DX高四位拼成一个新字。

(5)将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来

(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中。

答:(1)双字减法的程序段是:

MOV AX,2A79H ;被减数的低位字送AX

SUB AX,345FH ;低位字相减,结果送AX

MOV BX,7B1DH ;被减数的高位字送BX

SBB BX,53E2H ;高位字相减处并减去低位字相减产生的借位,结果送BX

(2)使用移位指令实现一个字乘18的程序段是:

MOV AX,05F7H ;被乘数送AX

SHL AX,1 ;被乘数乘以2,结果在AX中

MOV BX,AX ;被乘数乘以2的结果暂存到BX

MOV CL,3 ;设置移位位数3

SHL AX,CL ;被乘数再乘以8(共乘以16),结果在AX中

ADD AX,BX ;被乘数再乘以18,结果在AX中

(3)使用移位指令实现一个字除以10的运算,必须将X/10拆分成多项的和,而

每一项都应是非的某次幂的倒数。利用等比级数的前N项和公式,可求出A0=X/

8,公比Q=-1/4,故X/10=X/8-X/32+X/128-X/512+...,

所求的程序段是:

MOV AX,FE00H ;被除数送AX

MOV CL,3 ;设置移位位数3

SHR AX,CL ;被乘数除以8,结果在AX中

MOV BX,AX ;被乘数除以8的结果暂存到BX

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除32),结果在AX中

SUB BX,AX ;被除数/8-被除数/32,结果在BX中

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除128),结果在AX中

ADD BX,AX ;被除数/8-被除数/32+被除数/128,结果在BX中

MOV CL,2 ;设置移位位数2

SHR AX,CL ;被乘数除以4(累计除512),结果在AX中

SUB BX,AX ;被除数/8-被除数/32+被除数/128-被除数/512,结果在BX

(4) 将AX中间8位,BX低四位,DX高四位拼成一个新字的程序段是:

AND DX,0F000H ;将DX的低12位清零,高4位不变

AND AX,0FF0H ;将AX的低4位清零,高4位清零,中间8位不变

AND BX,0FH ;将BX的高12位清零,低4位不变

ADD AX,BX

ADD AX,DX ;按要求组成一个新字,结果放在AX中。

(5) 将数据段中以BX为偏移地址的连续四个单元的内容颠倒过来的程序段是:

MOV AL,[BX] ;数据段中BX为偏移地址的字单元内容送AX

XCHG AL,[BX+3] ;数据段中BX+3为偏移地址的字单元内容与AX的内容交换

MOV [BX],AL ;数据段中BX+3为偏移地址的字单元内容送BX为偏移地址

的字单元

MOV AL,[BX+1] ;数据段中BX+1为偏移地址的字单元内容送AX

XCHG AL,[BX+2] ;数据段中BX+2为偏移地址的字单元内容与AX的内容交换

MOV [BX+1],AL ;数据段中BX+2为偏移地址的字单元内容送BX+1为偏移地

址的字单元

(6)将BX中的四位压缩BCD数用非压缩BCD数形式顺序放在AL、BL、CL、DL中

的程序段是:

MOV DL,BL ;四位压缩BCD数的低位字节送DL

AND DL,0FH ;DL的高4位清零,得四位非压缩BCD数的最低位,放入DL中

MOV CL,4 ;设置移位位数4

SHR BX,CL ;BX中的数据逻辑右移4位,使四位压缩BCD数的次低位位于B

L的低4位

MOV CH,BL ;将BL的内容暂存到CH中保留

AND CH,0FH ;CH的高4位清零,得四位非压缩BCD数的次低位,放CH中

MOV CL,4 ;设置移位位数4

发布评论

评论列表 (0)

  1. 暂无评论