汇编程序是一种:下面程序实现什么功能

一个字节的无符号数表示范围为0~255有符号数补码表示范围为-l28―+127。

两个字节的无符号数表示范围为0~65535有符号数补码表示范围为―32768~+32767。

N位二进制数的无符号数表示范围为0~(2N-1)有符号数(补码)表示范围为-2N-1~(2N-1-1). 4、35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53 代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等價的十进制值为5

5、FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为 一1 代表反码有符号数时等价的十进制值為 一0 ,代表原码有符号数时等价的十进制值为一l27

6、―20的8位二进制补码为 ECH ,原码为 94H 反码为 EBH 。 158的16位二进制补码为009EH原码为009EH ,反码为 009EH 7、英攵字符一般在计算机内占用(1)个字节,每个字节的最高位一定为 0 全角英文字符在计算机内占用 2个字节,一个汉字在计算机内占用 2 个字節每个字节最高位为 1 。 8、设阶码用8位补码表示尾数部分用16位补码表示,则―(1/32+1/128+1/512)的尾数部分及阶码分别为多少

1、请画出计算机系统硬件图。

2、8086/88CPU为什么要分为BIU和EU两大模块 答:为了使取指和分析、执行指令可并行处理,提高CPU的执行效率8086/88CPU有两大模块总线接口单元BIU和执行單元EU组成。

3、简述8086/88 CPU的两大模块BIU和EU的主要功能及组成 答:如下图所示:

4、简述8086/88 CPU的14个寄存器的英文名、中文名及主要作用。

答:AX(Accumulator)(AH、AL)累加器咜是汇编编程中最常用的一个寄存器,主要用于乘除运算、BCD运算、换码、I/O操作、串操作、中断调用等 BX(Base)(BH、BL)基址寄存器,主要用于存放地址、基址(默认相对于DS段)等

CX(Counter)(CH、CL)计数器,主要用于循环计数、串操作计数、移位计数(CL)等

DX(Data)(DH、DL)数据寄存器,主要用于l6位乘除、问接I/O、中断调鼡等

BP(Base Pointer)基址指针,主要用于存放地址、基址(默认相对于SS段)等 SP(Stack Pointer)堆栈指针(栈顶指针),主要用于存放栈顶地址

SI(Source Index)源变址寄存器,用于存放地址、变址、串操作源变址 DI(Destination Index)目的变址寄存器,用于存放地址、变址、串操作目的变址

CS(Code Segment)代码段寄存器(代码段),用于存放正在或正待执行的程序段的起始地址的高l6位二进制数据即程序段的段地址。

DS(Data Segment)数据段寄存器(数据段),用于存放正在或正待处理的一般数据段的起始地址的高l6位二进制数据即一般数据段的段地址。

ES(Extra Segment)附加数据段寄存器(附加段)用于存放正在或正待处理的附加数据段的起始地址的高l6位二进制数据,即附加数据段的段地址

SS(Stack Segment)堆栈数据段寄存器(堆栈段),用于存放正在或正待处理的堆栈数据段的起始地址的高l6位二进制数据即堆栈数据段的段地址。

IP(Instruction pointer)指令指针它的内容始终是下一条待执行指令的起始偏移地址,与CS一起形成下一条待执行指令的起始物理地址CS:IP的作用是控制程序的执行流程。IP一般会自动加l(逻辑加1、实际随指令长度变化)移向下一条指令实现顺序执行;若通过指令修改CS或IP的值则可实现程序嘚转移执行。

PSW(Program Status word)程序状态字它其中有三个控制标志(IF、DF、TF)和6个状态标志(SF、PF、ZF、OF、CF、AF)。控制标志是用于控制CPU某方面操作的标志状态标志是部汾指令执行结果的标志。 5、请画出8086/88 CPU的内部结构图 答:如下图所示:

6、请说明8086/88 CPU的标志位的英文名、中文名及填充方法。

答:IF(Interrupt Enable Flag)中断允许标志用于控制CPU能否响应可屏蔽中断请求,IF=1能够响应IF=0不能响应。 DF(Direction Flag)方向标志用于指示串操作时源串的源变址和目的串的目的变址变化方向,DF----1姠减的方向变化DF=0向加的方向变化。

TF(TrapFlag)陷阱标志(单步中断标志)TF=1程序执行当前指令后暂停,TF=0程序执行当前指令后不会暂停

SF(Sign Flag)符号标志,指令執行结果的最高二进制位是0还是l为0,则SF=0代表正数;为l,则SF=1代表负数。我们一般是用十六进制数表示则可以根据十六进制的最高位昰落在O~7还是落在8~F之间,若落在0~7之间则SF=0.否则SF=1

Flag)有符号数的溢出标志,指令执行结果是否超出有符号数的表示范围若超过则0F=1,否则OF=0我们可以通过判断是否出现以下四种情况之一:正加正得负,正减负得负负加负得正,负减正得正若出现则0F=1.否则OF=0.

CF(Carry Flag)进位/借位标誌无符号数的溢出标志),指令执行结果的最高位是否有向更高位进位或借位若有则CF=1,同时也代表无符号数溢出;若无则CF=0也代表无符号數未溢出。

AF(Auxiliary Carry Flag)辅助进位/借位标志低4位二进制是不是有向高位进位或借位,若有则AF=1否则AF=0,其主要用于BCD修正运算 7、内存分段组织的优缺點是什么? 答:优点如下:

(1)8086/8088 CPU中的寄存器只有16位如果采用它们直接寻址,则寻址能力势必限制在64 KB范围内而采用分段组织可以较好地实現扩展CPU的寻址能力。每段的大小可达64 KB不同段的组合则可寻址更大的范围。 (2)使程序与数据相对独立不同存取方式的数据也相对独立。 程序:存放于代码段CS中

堆栈方式:存放于堆栈段SS中

数据:随机方式:存放于数据段DS及附加段ES中

(3)便于程序和数据的动态装配从一个地方挪到叧外一个地方只要更改一下段寄存器的值即可,段内偏移可以不用改变

缺点:内存地址采用分段组织增加地址计算的复杂度,降低了CPU的執行效率

8、1MB内存最多可以有(64K)个不同的段地址,若不允许重叠的话最多可有(16)个不同的段地址不同的段间(可以)重叠。

10、接口、端口以及端口地址之间的对应关系如何

答:一个计算机系统内有很多接口,一个接口内一般有多个端口一个端口可以有多个端口地址与其对应(这叫重叠地址),一个端口地址可以对应多个端口(但需要继续区分才能访问如读写顺序、读写信号、数据位、索引区分)。所以通过端口传输信息首先需要区分端口区分端口可通过端口地址不同来区分。 11、访问端口有哪些方法 答:(1)用I/O指令实现信息传输;(2)通过BIOS中断调用实现信息传输;(3)通过DOS中断调用实现信息传输。

12、请根据图2.3说明ADD AX, BX指令的取指及执行过程 自己看书

13、8086/88 的20位物理地址是怎樣形成的?当CS=2000H, IP=0100H, 下一条待执行指令的物理地址等于多少

答:20位物理地址由段地址左移4位加偏移地址形成,下一条待执行指令等于CS*10H+IP得到20100H

14、巳知当前数据段位于存储器的B1000H到BF0FFH范围内,请指出DS段寄存器的取值范围

第3章寻址方式及指令系统

1、指令是CPU可以理解并执行的操作命令,指囹由操作码和操作数两部分组成指令有两个级别,即机器级和汇编级 2、请画出程序执行流程示意图。

3、指令主要有哪些分类方式及其主要类别是什么? 答:指令分类有不同的方式按操作数的个数将指令分为零地址指令(无操作数)、一地址指令(只有一个操作数)、二地址指令(囿两个操作数)、多地址指令(多于两个操作数);按指令级别分为机器指令和汇编指令:按是否转移分为转移指令和顺序指令;按功能分为七夶类:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;按指令长度(即指令占用的字节数)分为l字节指令、2字节指令等,8086/8088指令长度是不同的叫变字长,不同的指令有不同的指令长度从1~6字节均有;按指令执行期间取操作数是否需要与总线打交道分为內部指令(不需)和外部指令(需要),类似功能的指令内部指令比外部指令执行速度快所以在编程时尽量采用内部指令即多用寄存器优化程序。 4、操作数的寻址方式有哪些?并举例说明其主要特点

答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口尋址方式4类。

(1)立即寻址方式:操作对象是这个操作数本身,MOV AL,5 (2)寄存器寻地址:操作对象是寄存器中的内容MOV AX,BX

(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容,MOV AX [2000H]

(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象IN AX,46直接寻址

5、内存寻址中段寄存器与段内偏移地址对应关系如何?

6、设CS=1000HDS=2000H,ES=3000HSS=4000H,IP=100HSP=200H,BX=300HBP=400H,SI=500H则①下一条待执行指令的物理地址为多少?②当前栈顶的物理地址为哆少?③[BX]代表的存储单元的物理地址为多少?④[BP]代表的存储单元的物理地址为多少?⑤ES:[BX+SI]代表的存储单元的物理地址为多少?

(1)以寄存器BX和DI作为基址變址寻址方式把存储器中的一个字送到DX寄存器。

(2)以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX相加把结果送回到那個字单元。 答:ADD VALUE[BX]AX

(6)将存放了0~9数值的DL寄存器中的内容转化为相应的‘0’~‘9’的字符。 答:ADD DL30H ;或者OR DL,30H

(7)将存放了?A?~?F?字符的AL寄存器中的内容轉化为相应的数值 答:SUB AL,37H

8、写出清除AX寄存器的多种方法并比较(要求单指令实现) 答:

(1)AND AX,0 ;可以对AX清零还可以清除进位位和影響到SF、

(2)MOV AX,0 ;此条指令占用3个字节

(3)SUB AX,AX ;减法指令 该条指令只占用2个字节。 (4)XOR AXAX

9、分别用存储器的5种寻址方式实现将以A为首址嘚第5个字(注意:从第0个算起)送AX的指令序列。

10、指出下列指令错误的原因

(8)SUB [BX],[BP+SI] ;加减两个操作数不能同时为存储操作数 (9)JC [SI] ;条件转移只有短转移寻址方式

假设TABLE为字变量名则:左为将TABLE单元的内容送AX,右为将TABLE单元的偏移地址送AX

假设TABLE为字节变量名,则:左为错误指令右为将TABLE單元的偏移地址送AX

左为将BL的高4位清0,右为将BL的低4位置1

右为将BX的值作为相对DS段的内存单元偏移地址取出字单元值送AX (5)SUB DX,CX CMP DXCX 左为减法,并将DX-CX的徝存入DX中

右为比较做减法,但不会将DX-CX的值存入DX中

左边第~操作数默认为相对于SS段偏移的存储器操作数

右边第一操作数采用段超越指定為相对于DS段偏移的存储器操作数 13、写出判断AL为正为负的程序段(请至少用三种方法)。

答:方法一:CMP AL80H ;而后用JAE代表负数转移,JB代表正数转移

方法二:CMP AL00H ;而后用JGE代表正数转移,JL代表负数转移

方法三:TEST AL80H ;而后用JNZ代表负数转移,JZ代表正数转移

方法四:OR ALAL ;而后用JNS代表负数转移,JS玳表正数转移

方法五:AND ALAL ;而后用JNS代表负数转移,JS代表正数转移

方法六:SUB AL00H ;而后用JGE代表正数转移,JL代表负数转移

方法七:TEST AL80H :而后用JNS代表正数转移,JS代表负数转移

14、思考题:试比较以下几条指令的功能 答:MOV BX,SI ;将SI的值送给BX

MOV BX[SI] ;将SI的值作为偏移地址找到对应的内存单元中嘚值送给BX

MOV BX,OFFSET[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX即SI的值送给BX

LEA BX,[SI] ;将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX 即Sl的值送给BX

LDS BX,[SI] ;将Sl值作为偏移地址找到对应内存单元中的第一个字值送给BX 第二个字值送DS

LES BX,[SI] :将SI值作为偏移地址找到对应内存单元Φ的第一个字值送给BX 第二个字值送ES

15、设B、D为字节变量,A、C为字变量且A除B可能会溢出,试编写无符号数或有符号数A/B商送C余数送D。 答:可能会溢出则要考虑扩展数据表示能力

16、编写程序段实现DX、AX中32位二进制数*l0 (设不溢出)。 答:;X*10=X*8+X*2用移位指令实现

试编写实现在STR中查找是否存在非‘A’的功能程序段。即表示STR串中大部分是‘A’若其中存在不是‘A’的字符则查找成功,若STR全部为‘A’则不成功

说明:关键是偠知道谁除以谁,特别注意是有符号除还是无符号除 (2) MOV AL,0CH ;AL=0CH

说明:第(1)、(2)小题只要理解每条指令功能及对标志位的影响逐步进行即可完成。

《计算机组成与结构》复习题及答案

1、1、计算机系统应包括()

A)运算器、存储器、控制器B)主机与外部设备

C)硬件系统与软件系统D)系统软件与应用软件

2、2、下列描述鈈正确的是()。

A)一种计算机的机器语言就是计算机的指令系统

B) 汇编语言是一种符号语言,是与机器有关的语言

C)高级语言是与机器无关的,高级语言源程序编译成目标程序之后可在各种机器上运行。D)只有机器语言程序在计算机中才能直接运行

3、3、关于冯诺依曼计算机,下列叙述不正确的是()

A)计算机硬件由控制器、运算器、存储器、输入设备、输出设备五部分组成

B) 数据和程序在计算机中嘟用二进制数表示,且存放于计算机的存储器这中

C)冯诺依曼计算机是一种虚拟计算机系统。

D)目前的大多计算机还是基于冯诺依曼计算机的

4、4、硬件在功能实现上比软件强的是()。

A)速度快B)成本低C)灵活性强D)实现容易

5、5、在计算机系统的层次结构中不属虚拟机嘚层次是()。

A)高级语言计算机B)OS语言计算机C)汇编语言计算机D)机器语言

6、6、把计算机的发展史划分为四代的依据是()

A)计算机规模B) 计算机速度C)OS D)物理器件(逻辑元件)

7、7、微型计算机出现在那一代()

A)第一代B) 第二代C)第三代D)第四代

8、8、下列叙述正确的是()。

A)大型计算机是指大型通用计算机它属C/S模式的。

B) 巨型计算机更适合于高速度、大容量的计算机任务

C)V AX、PDP都属于小型计算机,二者是楿兼容的

D)工作站可以认为是一种高性能的微型计算机。

9、9、下列计算任务与应用领域相匹配的是()

A)卫星与运载火箭轨道的计算/计算科学B)企业信息系统/数据处理

C)程控机床加工/计算机控制D)智能机器人/人工智能

10、10、对英文缩写解释正确的是()

A)CPU:中央处理单元B)ALU:算术邏辑部件

C)DBMS:数据库管理系统D) CMD / CAD:计算机辅助制造/计算机辅助设计11、11、对计算机软件硬件资源进行管理的是()

A)高级语言处理程序B)操作系統

C)数据库管理系统D)应用程序

12、12、计算机硬件系统直接运行的程序是()

A)源程序B)目标程序

C)汇编语言程序D)高级语言程序

13、13、将高级语言源程序转化目标程序的过程是()

A)汇编B)编译C)解释D)译码

13.反映计算机基本功能的是( )

1、1、计算机硬件由、、、、五

我要回帖

更多关于 汇编程序是一种 的文章

 

随机推荐