当前位置:文档之家› 微机原理 习题解答 钱晓捷 微机 2011

微机原理 习题解答 钱晓捷 微机 2011

微机原理 习题解答 钱晓捷 微机 2011
微机原理 习题解答 钱晓捷 微机 2011

第1章 微机概述

1.1CPU是英文_________的缩写, 中文译为_________,微型机采用_________芯片构成CPU。

Central Processing Unit 中央处理单元 超大规模集成电路

1.2什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?

?通用微处理器:冯-诺伊曼结构中的运算器和控制器,有基本的指令处理和执行功能,通过总线可与内存和外设通信。

?单片机(微控制器):将运算器、控制器和基本内存制作在一块芯片上,外接少量电路即可完成强大功能的计算机系统。

?DSP芯片:采用哈佛结构,即指令和数据分开存储,并有相应的总线,以便于处理大量的数据,常用于数字信号处理。

?嵌入式系统:将冯-诺伊曼结构的五大部件:运算器 控制器 存储器 输入输出电路制作在一块芯片中,可方便使用的微机系统。

1.3什么是摩尔定律?它能永久成立吗?

每隔十八个月,计算机的芯片集成度会提高一倍,功能提高一倍,而价格则下降为一半。

1.4冯‐诺伊曼计算机的基本设计思想是什么?

采用二进制形式表示数据和指令,指令由操作码和地址码组成

将程序和数据存放在存储器中,计算机在工作时从存储器中取出指令执行,自动完成

指令的执行是顺序进行的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现

计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并具有各自相应的功能。

1.5说明微型计算机系统的硬件组成及各部分作用。

?微型计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。

?其中存储器又分内存储器、外存储器;通常把输入设备及输出设备称为外围设备;

运算器和控制器合称为中央处理器——CPU(Central Processing Unit)。存储器的主

要功能是存放程序和数据,中央处理器的主要功能是执行存储器内的程序,输入设

备的任务是把用户要求计算机处理的数据、字符、文字、图形和程序等各种形式的

信息转换为计算机所能接受的编码形式存入到计算机内、并进行处理。输出设备的

任务是把计算机的处理结果以用户需要的形式(如屏幕显示、文字打印、图形图表、

语言音响等)输出。输入输出接口是外部设备与中央处理器之间的缓冲装置,负责

电气性能的匹配和信息格式的转换。

?也可以简单地说计算机由硬件和软件组成。

1.6什么是总线?微机总线通常有哪3组信号?各组信号的作用是什么?

?总线(Bus)是计算机各功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、

地址总线和控制总线,分别用来传输数据、地址和控制信号。

?总线使用特点之一,某一时刻只能由一个总线主控设备来控制系统总线;特点之二,在连接总线的多个设备中,向总线发送信号只能有一个设备,而从总线上读取信号

的设备可以不止一个。

1.7简答如下概念:

(1) 计算机字长:

CPU在一个时钟周期内能够处理的最多的二进制的位数, (2) 取指—译码—执行周期

CPU执行一条指令时,首先从内存读取指令,在读取下一条指令的同时,对当前指令进行译码,并送相应部件执行,其所花费的时间为取指—译—执行

周期

(3) ROM‐BIOS

BIOS, Basic Input/Output System基本输入输出系统,通常固化在只读存储器ROM中,可完成计算机的初始化工作,提供基本的功能调用。

(4) 中断

CPU与外设的一种数据传送方式,在外设申请被CPU响应后,CPU会停下当前工作,执行相应的中断服务程序。

(5) ISA总线

Industrial Standard Architecture 工业标准体系结构总线,又称PC总线,首先用于PC/AT微机,有98根线,数据16位,用于CPU与外设交换数据。现

已淘汰。

1.8下列十六进制数表示无符号数,请转换为十进制形式的数值:

(1)FFH (2)0H (3)5EH (4)EFH

1.9将下列十进制数真值转换为压缩BCD码

(1)12 (2)24 (3)68 (4)99

1.10将下列压缩BCD码转换为十进制数:

(1)10010001 (2)10001001 (3)00110110 (4)10010000

1.11将下列十进制数用8位二进制补码表示:

(1)0 (2)127 (3)—127 (4)—57

1.12数码0—9、大写字母A—Z、小写字母a—z对应的ASCII码分别是多少?ASCII码0DH

和0AH分别对应什么字符?

无符号数 十进

制数

十进制

真值

压缩BCD

压缩BCD

十进制

真值

十进制

8位二进

制补码

FFH 255 12 0001 0010 1001 0001 91 0 0000 0000 0H 0 24 0010 0100 1000 1001 89 127 0111 1111 5EH 94 68 0110 1000 0011 0110 36 -127 1000 0001 EFH 239 99 1001 1001 1001 0000 90 -57 1100 0111

第2章 指令系统

2.1微处理器内部有哪3个基本部分?8088分为哪两大功能部件?其各自的主要功能是什

么?这种结构与8位CPU相比为什么能提高其性能?

解:微处理器内部的3个基本部分为:算术逻辑单元ALU、寄存器组和控制器;

8088的两大功能部件BIU和EU。各自主要功能为:

总线接口单元BIU:管理8088与系统总线的接口负责CPU对接口和外设进行访问

执行单元EU:负责指令译码、执行和数据运算;

与8位CPU相比的优点是:8088不需要等待取指令。8088可以将需要译码的指令预先取到指令队列,8位CPU在指令译码前必须等待取指令操作的完成。而取指令是CPU最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位CPU 节省了时间,提高了性能。

2.2说明8088的8个8位和8个16位通用寄存器各是什么?

解:8个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL;

8个16位寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。

2.3什么是标志?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志

的位置和含义。

解:标志用于反映指令执行结果或者控制指令执行形式。

状态标志用于记录程序运行结果的状态信息;控制标志用于控制指令执行的形式。

8088/8086有一个16位的标志寄存器,也称为程序状态字,分为6个状态标志和3个控制标志。其首字母可形成一句话:IS PC A DOT? (0为No,1为Yes,故答Zero)。

也可依从低位到高位的顺序记忆为:CPA(注册会计师考试)考了零(Z ero)分,作为学生(ST udent),义不容辞,只好我来做了(I DO)。

C arry进位 / P arity偶 / A uxiliary辅助(进位)/ Z ero零

S ign符号 / Trap陷阱 / I nterruption中断 / D irection方向 / O verflow溢出

15 1413 12 11109 8 7 6 5 4 3 2 1 0

O D I T S Z A P C

2.4举例说明CF和OF标志的差异。

解:进位(Carry):表示无符号数运算结果是否超出范围,有则CF=1,否则CF=0 溢出(Overflow):表示有符号数运算结果是否超出范围,有则OF=1,且结果错误,否则OF=0

以8位机器数为例。字节相加:3AH+7CH=B6H。若认为是无符号数,58+124=182,在0~255范围内,没有产生进位,CF=0,若认为是有符号数,58+124=182,已经超出-128~+127范围,产生溢出,所以OF=1;另一方面,B6H作为有符号数的补码表达真值是-74,显然运算结果也不正确。

此例中,其余标志位:ZF=0, SF=1, PF=0, AF=1

2.5 什么是8088中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?1MB 最多能分

成多少个逻辑段?请将如下逻辑地址用物理地址表示:

(1)FFFFH :0 (2)40H :17H (3)2000H :4500H (4)B821H :4567H

解: 物理地址:8088的20根地址线直接寻址的存储单元编号,范围是00000~FFFFFH。 逻辑地址:由段基地址和段内偏移地址组成。

段地址左移4位加上段内偏移地址可得实际的物理地址。 由于CPU 内寄存器及算术逻辑运算均以16位进行,所以1MB 存储空间被分成许多逻辑段来管理。最多可分成2041622264K ÷==个逻辑段。 (1)FFFF :0 ?FFFF0H (2)40H :17H ?00417H (3)2000:4500H ?24500H (4)B821H :4567H ?BC777H

2.6 8088有哪4种逻辑段,各种逻辑段分别是什么用途?

代码段:存放程序的指令序列; 堆栈段:确定堆栈所在的主存储区; 数据段:存放当前运行程序的数据;

附加段:附加数据段,用于数据保存。另外串操作指令将其作为目的操作数的存放区。

2.7 什么是有效地址EA ?8088的操作数如何在主存中,有哪些寻址方式可以存取它?

8088的存储空间分段管理,程序设计时采用逻辑地址。由于段地址在默认的或指定的段寄存器中,所以只需要偏移地址,称为有效地址EA.

操作数在主存中有以下几种寻址方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。

2.8 已知DS=2000H ,BX=0100H ,SI=0002H ,存储单元[20100H] — [20103H]依次存放12H 、

34H 、56H 、78H ,[21200H] — [21203H]依次存2AH 、4CH 、B7H 、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]

2.9 说明下列各条指令的具体错误原因

(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)

ax=1200h 立即数寻址 (2)ax=0100h 寄存器寻址 (3)ax=4C2A h 存储器直接寻址 (4)ax=3412h 存储器间接寻址 (5)ax=4C 2Ah 存储器相对寻址 (6)ax=7856h 存储器基址变址寻址(7)ax=65B7h 相对基址变址寻址

2.10 已知数字0—9对应的格雷码依次为:18H 、34H 、05H 、06H 、09H 、0AH 、0CH 、11H ,

12H 、14H ,它存在于又table 为首地址(设为200H )的连续区域中。请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。 LEA BX , TABLE ;获取table 的首地址,BX=200H mov al, 8 ;传送欲转换的数字,AL=8 xlat ;转换为格雷码,AL=12H

2.11 给出下列各条指令执行后的AL 值,以及CF 、ZF 、SF 、OF 和PF 的状态:

1 MOV AL , 89H

2 ADD AL , AL

3 ADD AL , 9DH

4 CMP AL , 0BCH

5 SUB AL , AL

6 DEC AL

7 INC AL

2.12 请分别用一条汇编语言指令完成如下功能:

(1)把BX 寄存器和DX 寄存器的内容相加,结果存入DX 寄存器。 (2)用寄存器BX 和SI 的基址变址寻址方式把存储器的一个字节与AL 寄存器的内容相

加,并把结果送到AL 中

(3)用BX 和位移量0B2H 的寄存器相对寻址方式把存储器中的一个字和CX 寄存器的

内容相加,并把结果送回到存储器中。

(4)用位移量为0520H 的直接寻址方式把存储器中的一个字与数3412H 相加,并把结

果送回到该存储单元中。

(5)把数0A0H 与AL 寄存器的内容相加,并把结果送回AL 中。 解:(1) add dx, bx

(2) add al, [bx+si]

(3) add word ptr[bx+0B2H], cx (4) add word ptr[0520H],3412H (5) add al, 0A0H

2.13 设X 、Y 、Z 和V 均为16位带符号数,分别装在X 、Y 、Z 、V 存储单元中,阅读如下程

序段,得出它的运算公式,并说明运算结果存于何处。 mov ax, X imul Y mov cx, ax mov bx, dx

mov ax, Z

cwd

add cx, ax adc bx, dx sub cx, 540 sbb bx, 0 mov ax, V cwd sub ax, cx sbb dx, bx idiv V

2.14 给出下列各条指令执行后的结果,以及状态标志CF 、OF 、SF 、ZF 、PF 的状态

mov ax, 1470h and ax, ax or ax, ax xor ax, ax not ax test ax, 0f0f0h 解:如表所示

2.15 控制转移类指令中有哪三种寻址方式?

相对寻址方式 直接寻址方式 间接寻址方式。

2.16 假设DS = 2000H ,BX = 1256H ,TABLE 的偏移地址是20A1H ,物理地址232F7H 处存放

3280H ,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么? (1)JMP BX (2)JMP TABLE[BX] 解:(1)1256H

(2)3280H

2.17 判断下列程序段跳转的条件:

(1)xor ax, 1e1eh

je equal

(2)test al, 1000 0001b

jnz there (3)cmp cx, 64h jb there

2.18 如下是下段软件延时程序,请问NOP 指令执行了多少次?

xor cx, cx delay: nop loop delay

2.19 有一个首地址为array 的20个字的数组,说明下列程序段的功能。

mov cx, 20 mov ax, 0 mov si, ax

sumlp: add ax, array[si]

add si, 2

loop sumlp mov total, ax

AX=1470h CF OF SF ZF PF AX=1470h 0 0 0 0

0 AX=1470h 0 0 0 0 0 AX=0000H 0 1 0 0 1 AX=FFFFH 0 1 0 0

1 AX=FFFFH 0 0 1 0 1

解:FFFFH ~ 0000H = 216 = 65536次。 解:20个数组元素按字累加求和。结果存

入total 存储单元中。

2.20按照下列要求,编写相应的程序段:

(1)由string指示的起始地址的主存单元中存放一个字符串(长度大于6),把该字符串的第1个和第6个字符(字节量)传送给DX寄存器

(2)有两个32位数,按“小端方式”存放

在两个缓冲buffer1和buffer2中,编写程序

段完成DX.AX ?buffer1?buffer2功能

(3)编写一个程序段,在DX高4位全为0

时,使AX = 0;否则,使AX = ‐‐1。

(4)把DX.AX中的双字右移4位。

(5)有一个100个字节元素的数组,其首地

址为array,将每个元素减1(不考虑溢出或

借位)存于原处。

2.21 AAD指令是用于除法指令之前,进行非压缩

BCD码调整的。实际上,处理器的调整过程

是:AL?AH*10 + AL,AH?0。如果指令系统没

有AAD指令,请用一个子程序完成这个调整

工作。

Htoasc proc

Mov bl, al

Mov al, ah

Mov bh, 10

Mul bh

And ax, 00FFH

Add al, bl

Htoend: ret

Htoasc endp

2.22什么是系统功能调用?在汇编语言中,调用系统功能的一般步骤是什么?

计算机系统利用中断为用户提供硬件设备驱动程序。在IBM-PC系列微机中,基本输入输出系统ROM-BIOS和DOS都提供了丰富的中断服务程序,称为系统功能调用。

调用步骤

(1)AH中设置系统功能调用号

(2)在指定寄存器中设置入口参数

(3)使用中断调用指令执行功能调用

(4)根据出口参数分析调用情况

2.23DAA指令的调整操作是:

(1)如果AL的低4位是A ~ F,或者AF标志为1,则AL?AL + 6,且使AF = 1;

(2)如果AL的高4位是A ~ F,或者CF标志为1,则 AL?AL + 60H,且使CF = 1;

阅读如下子程序,说明它为什么能够实现AL低4位表示的一位16进制数转换成对应的ASCII码,并且将该程序加上在屏幕显示的功能,编写成通用的子程序。 Htoasc

proc

And al,0FH

Add al,90H

Daa

Adc al,40H

Daa

Mov ah,02H

Mov dl,al

Int 21H

Ret Htoasc endp

2.24 乘法的非压缩BCD 码调整指令AAM 执行的操作是:AH ?AL/10的商,AL ?AL/10的余数。利用AAM 可以实现

将AL 中的100以内的数据转换为ASCII 码,程序如下:

xor ah, ah aam

add ax, 3030h

利用这段程序,编写一个显示AL 中数值(0 ~ 99)的子程序。

2.25 编写一个程序段,先提示输入数字:“Input Number: 0 ~ 9”,然后在下一行显示输入的

数字,结束:如果不是键入了 0 ~ 9数字,就提示“Error!”,继续等待输入数字。

msgkey db”input number 0-9”,”$” msgwrg db ”error”, ”$” mov ah, 09h

mov dx, offset msgkey int 21h again: mov ah, 01h int 21h cmp al, 30h jb disp

cmp al, 39h ja disp

mov dl, al mov ah, 02h int 21h jmp done

disp: mov dx, offset msgwrg mov ah, 09h int 21h jmp again done: mov ah, 02h mov dl, al int 21h

numout proc

xor ah, ah aam

add ax, 3030h

mov dl, ah

mov ah, 02h int 21h mov dl, al

mov ah, 02h

int 31h ret numout endp

第3章 汇编语言

3.1汇编语言有什么特点?

汇编语言是一种以处理器指令系统为基础的低级程序设计语言,它采用助记符表达指令操作码,采用标识符号表示指令操作数,可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。作为一种低级语言,汇编语言编程较繁琐,但在病毒防护、加密与解密等方面,汇编语言的作用是不容置疑和不可替代的。

3.2编写汇编语言源程序时,一般的组成原则是什么?

?完整的汇编语言源程序由段组成

?一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列

?需独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点

?所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内

?通常,程序还需要一个堆栈段

3.3.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪7种存储模式,

各用于创建什么性质的程序?

存储模式特 点

TINY COM类型程序,只有一个小于64KB的逻辑段(MASM 6.x支持)

SMALL小应用程序,只有一个代码段和一个数据段(含堆栈段),每段不大于64KB COMPACT代码少、数据多的程序,只有一个代码段,但有多个数据段

MEDIUM代码多、数据少的程序,可有多个代码段,只有一个数据段

LARGE大应用程序,可有多个代码段和多个数据段(静态数据小于64KB)

HUGE更大应用程序,可有多个代码段和多个数据段(对静态数据没有限制)FLAT32位应用程序,运行在32位80x86CPU和Windows 9x或NT环境

3.4如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处

停止汇编过程?

?为了指明程序开始执行的位置,需要使用一个标号。CS、IP、SS、SP可自动设置,但DS和ES需在程序最开始进行规定。

?应用程序执行结束,应将控制权交还操作系统。有如下几种返回DOS的方法: 1)利用DOS功能调用的4CH子功能;

2)调用20H号中断

3)MASM 6以上版本,.EXIT语句可自动完成返回DOS功能 ?源程序在程序的最后利用END伪指令停止汇编。

3.5MASM为什么规定十六进制常数不能用字母A – F开头?

MASM规定十六进制常数以0 – 9开头,或以0A、0B、0C、0D、0E、0F开头。不能以字母A – F开头,以免与常量或变量相混淆。

3.6给出采用一个源程序格式书写的例3‐1源程序。

stack segment stack

db 1024(0)

stack ends

data segment

string db 'Hello,Assembly !',0dH ,0aH ,‘$’ data ends

code segment 'code'

assume cs:code,ds:data,ss:stack

3.7 DOS 支持哪两种执行程序结构,编写这两种程序时需要注意什么?

1) .EXE 程序

程序可以有多个代码段和多个数据段,程序长度可以超过64KB 通常生成EXE 结构的可执行程序 2) .COM 程序

只有一个逻辑段,程序长度不超过64KB

需要满足一定条件才能生成COM 结构的可执行程序(MASM 6.x 需采用TINY 模式) 3.8 举例说明等价“EQU ”伪指令和等号“=”伪指令的用途。

符号定义伪指令有“等价EQU”和“等号=”: 符号名 EQU 数值表达式 符号名 EQU <字符串> 符号名 = 数值表达式 EQU 用于数值等价时不能重复定义符号名,但“=”允许有重复赋值。例如: X= 7 ;等效于:X equ 7 X= X+5 ;“X EQU X+5”是错误的 3.9 给出下列语句中,指令立即数(数值表达式)的值: (1)mov al, 22h AND 45h OR 67h (2)mov ax, 1234h/16 + 10h (3)mov ax, 23h SHL ‘’4

(4)mov al, ‘a’ AND (NOT ( ‘a’ – ‘A’ ) )

(5)mov ax, (76543 LT 32768 ) XOR 7654h 3.10 画图说明下列语句分配的存储区间及初始化的数据值

(1)byte_var db ‘ABC’ , 10 , 10H, ‘EF’ , 3 dup(‐‐1, ?, 3 dup(4) ) ’A’ ’B’ ’C’ 10 10H ’E’ ’F’ -1

? 4 4 4 -1?

4

4

4 -1 ? 4 4

4

(2)word_var dw 10h, ‐‐5, 3 dup(?)

3.11 请设置一个数据段,按照如下要求定义变量:

10H 00 H F B 00 ? ? ? ? ? ?

(1) my1b 为字符串变量, 表示字符串"

Personal Computer".

(2) my2b 为用十进制数表示的字节变量,这

个数的大小为20

(3) my3b 为用十六进制数表示的字节变量,这个数的大小为20

(4) my4b 为用二进制数表示的字节变量,这

个数的大小为20

(5) my5w 为20个未赋值的字变量

(6) my6c 为100的符号常量

(7) my7c 为字符串常量, 代替字符串"

Personal Computer".

3.12 希望控制变量或程序代码在段中的偏移地址,应该使用哪个伪指令?

? 利用定位伪指令控制,如org, even, align 3.13 名字和标号有什么属性?

? 包括逻辑地址和类型两种属性。

3.14 设在某个程序中有如下片段,请写出每条传送指令执行后寄存器AX 的内容:

;数据段 org 100h

varw dw 1234h, 5678h

varb db 3, 4

vard dd 12345678h

buff db 10 dup(?)

mess db ‘hello’

;代码段

mov ax, offset mess

mov ax, type buff + type mess + type vard mov ax, sizeof varw + sizeof buff + sizeof mess

mov ax, lengthof varw + lengthof vard

3.15 假设myword 是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的

具体错误原因。

(1)mov byte ptr [bx], 1000

(2)mov bx, offset myword[si]

(3)cmp mybyte1, mybyte2

(4)mov mybyte1, al + 1

(5)sub al, myword

(6)jnz myword

3.16编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。

mov ah,1 ;只允许输入小写字母

int 21h

sub al,20h ;转换为大写字母

mov dl,al

mov ah,2

int 21h ;显示

3.17已知用于LED数码管的显示代码表为:

LEDtable db 0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 0f8h

2 db 80h, 90h, 88h, 83h, 0c6h, 0c1h, 86h, 8eh

它依次表示0 ~ 9、A ~ F这16个数码的显示代码。现编写一个程序实现将lednum中的一个数字(0 ~ 9、A ~ F)转换成对应的LED显示代码。

;程序如下,可参考第2章习题2-10

mov bx, offset LEDtable

mov al, lednum

xlat

3.18编写一个程序,把变量bufX和bufY中较大者存入bufZ;若两者相等,则把其中之一存

入bufZ中,假设变量存放的是8位有符号数。

;程序如下

mov ax, bufX

cmp ax, bufY

jae done

mov ax, bufY

done: mov bufZ, ax

3.19设变量bufX为有符号16位数,请将它的符号状态保存在signX,即:如果变量值大于

等于0,保存0;如果X小于0,保存—1。编写该程序。

;程序如下

.model small

.stack

.data

bufX dw -7

signX db ?

.code

.startup

cmp bufX, 0 ;test bufX,80h

jl next ;jnz next

mov signX, 0

jmp done

next: mov signX,-1

done: .exit 0

end

3.20 bufX,bufY和bufZ是3个有符号16进制数,编写一个比较相等关系的程序;

(1)如果这3个数都不相等,则显示0;

(2)如果这3个数中有两个数相等,则显示1;

(3)如果这3个数都相等,则显示2。

;程序如下

mov dl, ’2’

mov ax, bufX

cmp ax, bufY

je next1

dec dl

next1: cmp ax, bufZ

je next2

dec dl

next2: mov ah, 2

int 21h

3.21例3‐7中,如果要实现所有为1的位都顺序执行相应的处理程序段(而不是例量中仅执

行最低为1位的处理程序段),请写出修改后的代码段。

;程序如下

;代码段

mov al, number

mov bx, 0 ;BX←记录为1的位数

restart: cmp al, 0 ;AL=0结束

jz done

again: shr al, 1 ;最低位右移进入CF

jc next ;为1,转移

inc bx ;不为1,继续

jmp again

next: push ax

push bx

shl bx, 1 ;位数乘以2(偏移地址要用2个字节单元)

jmp addrs[bx] ;间接转移:IP←[table+BX]

;以下是各个处理程序段

fun0: mov dl, '0'

jmp disp

fun1: mov dl, '1'

jmp disp

fun2: mov dl, '2'

jmp disp

fun3: mov dl, '3'

jmp disp

fun4: mov dl, '4'

jmp disp

fun5: mov dl, '5'

jmp disp

fun6: mov dl, '6'

jmp disp

fun7: mov dl, '7'

jmp disp

;

disp: mov ah, 2 ;显示一个字符

int 21h

pop bx

pop ax

jmp restart

done: …

3.22编制程序完成12H、45H、F3H、6AH、20H、FEH、90H、C8H、57H和34H共10个无符

号字节数据之和,并将结果存入字节变量SUM中(不考虑进位)。

;程序如下

.model small

.stack

.data

b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据

num equ 10 ;数据个数

sum db ? ;预留结果单元

.code

.startup

xor si, si ;位移量清零

xor al, al ;取第一个数

mov cx, num ;累加次数

again: add a l, b_data[si] ;累加

inc si ;指向下一个数

loop again ;如未完,继续累加

mov sum, al ;完了,存结果

.exit 0

end

3.23求主存0040H:0开始的一个64KB物理段中共有多少空格?

;程序如下

.model small

.code

start: mov ax, 0040h ;送段地址

mov ds, ax

mov si, 0 ;偏移地址

mov cx, si ;计数(循环次数)

xor ax, ax ;空格计数器清零

again: cmp byte ptr [si], 20h ;与空格的ASCII码比较

jne next ;不是空格,转

inc ax ;是空格,空格数加1

next: inc si ;修改地址指针

loop again ;cx=cx-1,如cx=0 退出循环

.exit 0

end start

3.24编写计算100个正整数之和的程序。如果和不超过16位字的范围(65535),则保存其

和到wordsum,如超过则显示‘Overflow!’。

;程序如下

;数据段

count equ 100

parray dw count dup(?) ;假设有100个数据

wordsum dw 0

msg db ‘overflow’, ’$’

;代码段

mov cx, count

mov ax, 0

mov bx, offset parray

again: add ax, [bx]

jnc next

mov dx, offset msg

mov ah, 9

int 21h ;显示溢出信息

jmp done ;然后,跳出循环体

next: add bx, 2

loop again

mov wordsum, ax

done: …

3.25编制程序完成将一个16位无符号二进制数转换成为8421BCD码表示的5位十进制。转

转换算法可以是:用二进制数除以10000,商为“万位”,再用余数除以1000,得到“千位”;依次用余数除以100、10和1,得到“百位”、“十位”和“个位”。

;程序如下

;数据段

.model small

.stack 256

.data

array dw ? ;源字数据

dbcd db 5 dup(?) ;五位bcd结果,高对高低对低

.code

.startup

mov dx, array ;取源数据(余数)

mov bx, 10000 ;除数

mov cx, 10 ;除数系数

mov si, 4 ;目的数据高位位移量

again: mov ax, dx ;dx.ax中存放被除数

mov dx, 0

div bx ;除于bx,商ax,余数dx

mov dbcd[si], al ;商<10,存结果

push dx ;暂存余数

mov ax, bx ;除数除于10

mov dx, 0

div cx ;dx.ax除于cx,商ax、余数0存在dx

mov bx, ax ;bx是除数

pop dx

dec si ;目的数据位移量减1

jnz again

mov dbcd, dl ;存个位数( < 10 )

.exit 0

end

3.26过程定义的一般格式是怎样的?子程序开始为什么常有PUSH指令,返回前为什么常有

POP指令?下面完成16

crazy PROC

push ax

xor ax, ax

xor dx, dx

again: add ax, [bx]

adc dx, 0

inc bx

inc bx

loop again

ret

ENDP crazy

汇编语言中,子程序要用一对过程伪指令PROC和ENDP声明,格式如下: 过程名 PROC [NEAR|FAR]

…… ;过程体

过程名 ENDP

子程序中必须保护用到的寄存器内容,以便子程序返回时进行相应的恢复。

改错:本子程序入口参数为BX,出口参数为DX-AX

3.27编写一个源程序,在键盘上按一个键,将从AL返回的ASCII码值显示出来,如果按下

ESC键则程序退出。

again: mov ah, 1

int 21h

cmp al, 1bh ;ESC的ASCII码是1bh

je done

mov dl, al

mov ah, 2

int 21h ;是大写字母则转换为小写字母

jmp again

done: …

3.28请按如下说明编写子程序:

;子程序功能:把用ASCII码表示的两位十进制转换为对应二进制

;入口参数:DH = 十位数的ASCII码,DL = 个位数的ASCII码

;出口参数:AL = 对应的二进制数

asctob proc

push cx

and dh, 0fh ;先转换十位数

shl dh, 1 ;十位数乘以10(采用移位指令)

mov ch, dh

shl dh, 1

shl dh, 1

add dh, ch

and dl, 0fh ;转换个位数

add dh, dl ;十位数加个位数

mov al, dh ;设置出口参数

pop cx

ret

asctob endp

3.29调用HTOASC子程序,编写显示一个字节的16进制数、后跟“H”的子程序。

DIPASC proc ;入口参数:AL=要显示的一个16进制数

push cx

push dx

push ax

mov cl, 4 ;转换高位

shr al, cl

call HTOASC

mov dl, al ;显示

mov ah, 2

int 21h

pop ax ;转换低位

call HTOASC

mov dl, al ;显示

mov ah, 2

int 21h

mov dl, ‘H’ ;显示一个字母“H”

mov ah, 2

int 21h

pop dx

pop cx

ret

DIPASC endp

HTOASC proc :将AL低4位表达的一位16进制数转换为ASCII码 and al, 0fh

cmp al, 9

jbe htoasc1

add al, 37h :是0AH~0FH,加37H转换为ASCII码

ret :子程序返回

htoasc1: add al, 30h :是0~9,加30H转换为ASCII码

ret ;子程序返回

HTOASC endp

3.30写一个子程序,根据入口参数AL = 0、1、2,依次实现对大写字母转换成小写、小写转

换成大写或大小写字母互换。欲转换的字符串在STRING中,用0表示结束。

lucase proc

push bx

mov bx, offset string

cmp al, 0

je case0

cmp al, 1

jz case1

cmp al, 2

jz case2

jmp done

case0: cmp byte ptr [bx], 0

je done

cmp byte ptr [bx], ’A’

jb next0

cmp byte ptr [bx], ’Z’

ja next0

add byte ptr [bx], 20h

next0: inc bx

jmp case0

case1: cmp byte ptr [bx], 0

je done

cmp byte ptr [bx], ’a’

jb next1

cmp byte ptr [bx], ’z’

ja next1

sub byte ptr [bx], 20h

next1: inc bx

jmp case1

case2: cmp byte ptr [bx], 0

je done

cmp byte ptr [bx], ’A’

jb next2

cmp byte ptr [bx], ’Z’

ja next20

add byte ptr [bx], 20h

jmp next2

next20: cmp byte ptr [bx], ’a’

jb next2

cmp byte ptr [bx], ’z’

ja next2

sub byte ptr [bx], 20h

next2: inc bx

jmp case2

done: pop bx

ret

lucase endp

3.31子程序的参数传递有哪些方法?请简单比较。

(1)用寄存器传递参数:最简单和常用的参数传递方法是通过寄存器,只要把参数存于约定的寄存器中就可以了。

由于通用寄存器个数有限,这种方法对少量数据可以直接传递数值,而对大量数据只能传递地址

采用寄存器传递参数,注意带有出口参数的寄存器不能保护和恢复,带有入口参数的寄存器可以保护、也可以不保护,但最好能够保持一致

(2)用共享变量传递参数

子程序和主程序使用同一个变量名存取数据就是利用共享变量(全局变量)进行参数传递

如果变量定义和使用不在同一个源程序中,需要利用PUBLIC、EXTREN声明

如果主程序还要利用原来的变量值,则需要保护和恢复

利用共享变量传递参数,子程序的通用性较差,但特别适合在多个程序段间、尤其在不同的程序模块间传递数据

(3)用堆栈传递参数

参数传递还可以通过堆栈这个临时存储区。主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们 采用堆栈传递参数是程式化的,它是编译程序处理参数传递、以及汇编语言与高级语言混合编程时的常规方法

3.32采用堆栈传递参数的一般方法是什么?为什么应该特别注意堆栈平衡问题。

方法:主程序将入口参数压入堆栈,子程序从堆栈中取出参数;子程序将出口参数压入堆栈,主程序弹出堆栈取得它们

注意:压栈与弹栈必须要一一对应。

3.33编写一个求32位数据绝对值的子程序,通过寄存器传递入口参数。

方法1:

neg32 proc ;入口参数:DX.AX=32位有符号数

neg ax ;实现0-DX.AX功能

neg dx

sbb dx, 0 ;这条指令也可以用dec dx代替

ret

neg32 endp ;出口参数:DX.AX=32位有符号数的补码

方法2:

neg32 proc ;入口参数:DX.AX=32位有符号数

not ax ;实现DX.AX求反加1

not dx

add a x, 1

adc dx, 0

ret

neg32 endp ;出口参数:DX.AX=32位有符号数的补码

3.34编写一个计算字节校验和的子程序。所谓“校验和”是指不记进位的累加,常用于检查

信息的正确性。主程序提供入口参数,有数据个数和数据缓冲区的首地址。子程序回送求和结果这个出口参数。传递参数方法自定。

;数据段

array db 12h,25h,0f0h,0a3h,3,68h,71h,0cah,0ffh,90h ;数组

count equ $-array ;数组元素个数

result db ? ;校验和

;代码段

mov bx, offset array ;BX←数组的偏移地址

mov cx, count ;CX←数组的元素个数

call checksum ;调用求和过程

mov result, al ;处理出口参数

mov ax, 4c00h

int 21h

;计算字节校验和的通用过程

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

;出口参数:AL=校验和

;说明:除AX/BX/CX外,不影响其他寄存器

Checksum proc

xor al, al ;累加器清0

sum: add al, [bx] ;求和

inc bx ;指向下一个字节

loop sum

微机原理试题及答案

1 一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分) 1.指令MOV DX,[BX]的寻址方式是 D 。 (A)立即寻址(B)直接寻址(C)寄存器寻址(D)寄存器间接寻址2.若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。 (A)7EH (B)1FH (C)9FH (D)7FH 解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A 3.属于在工作中需定时刷新的存储器的芯片是 B 。 (A)SRAM (B)DRAM (C)EEPROM (D)EPROM 4.某EPROM芯片上有19条地址线A 0~A 18 ,它的容量为 C 。 (A)128K (B)256K (C)512K (D)1024K 5.8086/8088CPU的SP寄存器是多少位的寄存器 B 。 (A)8位(B)16位(C)24位(D)32位 6.在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址, 该寄存器是 D 。 (A)SP (B)BX (C)SI (D)DI 解析:stos数据串存储指令功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。 7.8255工作在方式0时,下面哪种说法不正确 C 。 (A)A口输入无锁存能力(B)A、B口输出有锁存能力 (C)C口输入有锁存能力(D)A、B、C三个口输出均有锁存能力 解析:对于方式0,规定输出信号可以被锁存,输入不能锁存 8.采用DMA方式来实现输入输出是因为它 A 。 (A)速度最快(B)CPU可不参与操作(C)实现起来比较容易(D)能对突发事件做出实时响应 9.工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。 (A)DT/R (B)DEN (C)ALE (D)AEN 10.在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存 器 C 。 (A)AX (B)BX (C)CX (D)DX 解析:loop:循环指令。指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。 二、填空题(每小题2分,共10分) 1.两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf: 全零标志位。本次运算结果为0时,zf=1,否则zf=0。 2.执行LODSB后,SI的内容较该指令执行前增加1,说明DF= 0 。

微机原理课后作业答案第五版

第一章 6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原 [-42]反 [-42]补 [+85]原=01010101B=[+85]反=[+85]补 [-85]原 [-85]反 [-85]补 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1) 1200:3500H=1200H×16+3500H=15500H (2) FF00:0458H=FF00H×16+0458H=FF458H (3) 3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址 1200H×16=12000H,结束地址 1200H×16+FFFFH=21FFFH (2)段起始地址 3F05H×16=3F050H,结束地址 3F05H×16+FFFFH=4F04FH (3)段起始地址 0FFEH×16=0FFE0H,结束地址 0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行 两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS: SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是 283AH; 从2001H单元取出一个字数据需要2次操作,数据是 5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

微机原理习题解答

第一章微型计算机的基础知识 1-1 将下列十进制数转换为二进制数、十六进制数。 (1)110 (2)1 039 (3)0.75 (4)0.156 25 1-2 将下列十进制数转换为BCD 码。 (1)129 (2)5 678 (3)0.984 (4)93.745 1-3 将下列二进制数转换为十进制数、十六进制数。 (1)10101010 (2)10000000 (3)11000011.01 (4)01111110 1-4 将下列十六进制数转换为二进制数、十进制数。 (1)8E6H (2)0A42H (3)7E.C5H (4) 0F19.1DH 1-5 将下列二进制数转换为BCD 码。 (1)1011011.101 (2)1010110.001 1-6 将下列BCD 码转换为二进制数。 (1)(0010 0111 0011) BCD (2)(1001 0111.0010 0101) BCD 1-7 完成下列二进制数的运算。 (1)1001.11+11.11 (2)1101.01-0110.11 (3)1000.011-1001.101 (4)1111+1101 1-8 完成下列十六进制数的运算。 (1)6AH+0A6H (2)0AB1FH+0EFCH (3)12ADH-1DEH (4)117H-0ABH 1-9 已知X=01H,Y=0FFH ,在下面的情况下比较两数的大小。 (1)无符号数 (2)符号数 (均为补码) 1-10 计算下列各表达式。 (1)101+‘A’+01101001B+0D5H+57Q (2)127.8125+10111101.101+375.63Q+1FC.8AH 1-11 写出下列字符串的ASCII 码。 (1)HELLO (2)A8=

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

微机原理与应用试题库(附答案)

《微机原理及应用》试题库 1. 8086 和 8088 的引脚信号中,D为地址锁存允许信号引脚。 A. CLK B. INTR C.NMI D.ALE 2.下面的哪项是有效标识符:B A . 4LOOP : B. DELAYIS : C. MAIN A/ B : D.GAMA$1 : 3.如图所示的三态输出电路,当 A 时, V B≈V DD。 A. E(ENABLE)=1, A=1 B.E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D.E(ENABLE)=0, A=0 4. 设 (SS)=2000H , (SP)=0100H , (AX)=2107H ,则执行指令PUSH AX后,存放数据21H 的物理地址是 D。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的A。 A.符号地址B.物理地址C.偏移地址 D .逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是A。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX ,0 MOV BX ,1 MOV CX , 100 AA : ADD AX ,BX INC BX LOOP AA HLT 执行后的结果:(AX)=,(BX)=。 A. 5050 , 99 B. 2500, 100 C. 5050 , 101 D. 2550 , 102 8. 假设 V1 和 V2 是用 DW 定义的变量,下列指令中正确的是A。 A . MOV V1, 20H B. MOV V1, V2 C . MOV AL, V1D. MOV2000H, V2 9. –49D 的二进制补码为A。

最新微机原理习题与答案

微机原理习题与答案

微机原理习题与答案 第一章微机基础 1-1微处理器、微机与微机系统三者之间有什么不同? 答: 微处理器一般也称为CPU,它本身具有运算能力和控制功能。微型计算机是由CPU、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。微处理器是微型计算机的一组成部分,而微型计算机又是微型计算机系统的一组成部分。 1-2 CPU在内部结构上由那几部分组成? 答:8位CPU在内部结构上由寄存器阵列、算术逻辑运算单元ALU、控制器和内部总线及缓冲器等部分组成。 1-3总线接口部件有哪些功能? 8086的执行部件有什么功能? 答:总线接口部件的功能是负责与存储器、I/O端口传送数据。 执行部件的功能是负责指令的执行。 1-4 8086/8088的状态标志和控制标志分别有哪些? 答:8086/8088的状态标志有6个:CF、AF、SF、PF、OF、ZF,控制标志有3个:TF、DF、IF。 1-5 8086/8088和传统的8位计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点? 答:8位饥是取一条指令,执行一条,再取,再执行; 8088执行时,取指与执行几乎是同时进行的。

1-6 8086/088微处理器中有哪些寄存器?通用寄存器中哪些可以作地址指针用? 答:8086/8088各有14个寄存器,它们可分为3组: (1)四个通用寄存器和四个变址和指针寄存器,即AX,BX,CX,DX,SP,BP,SI,DI。 (2)四个段寄存器,即CS,DS,SS,ES。 (3)两个控制寄存器,即IP,FR。 1-7 8086/8088 20位物理地址是怎么样形成的?当CS=2000H, IP=0100H,其指向的物理地址等于多少? 答:物理地址=段地址×16+段内偏移地址。 20100 2-1 试述8088微处理器的各种寻址方式,并写出各种寻址方式的传送指令1~~2条(源操作数寻址与目的操作数寻址) 答:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,变址寻址,基址加变址寻址。 第三章汇编语言程序设计 3-2指令AND AX,X AND Y中X和Y是两个已赋值的常量,问:两个AND操作分别在什么时间进行?功能上有何区别? 答:指令中的X AND Y操作在程序汇编时进行,该操作完成后得到一个数,即为指令中的第二操作数。由此得到“AND AX,立即数”这样形式的一条指令,由汇编器将其翻译为机器码。该指令中的AND操作由CPU在执行指令时完成,结果存于AX中,并影响F寄存器。 3-3指出以下三条指令的区别(NUM为数据段一个变量名)。

微机原理习题答案8章

第8章中断系统与可编程中断控制器8259A 1.什么叫中断?8086微机系统中有哪几种不同类型的中断? 答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。这个过程称为中断。 8086微机系统中有3种中断: 1)外部可屏蔽中断。 2)外部不可屏蔽中断。 3)内部中断 2.什么就是中断类型?它有什么用处? 答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。8086微处理器用8位二进制码表示一个中断类型,有256个不同的中断。这些中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。 用处:使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。 3.什么就是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件 就是 什么? 答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。 使用中断嵌套的好处就是能够提高中断响应的实时性。对于某些对实时性要求较高的操作,必须赋予较高的优先级与采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。 对于可屏蔽中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。(3)中断请求未被8259屏蔽。(4)没有不可屏蔽中断请求与总线请求。 4.什么就是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中 断向 量表中的存放位置。

微机原理试题及答案

学年第学期微机原理及应用(A)课程试卷 卷16 班级姓名得分任课教师 一、选择题:(每题分,共18分) 1、DMAC向CPU发出请求信号,CPU响应并交出总线控制权后将()。 反复执行空操作,直到DMA操作结束 进入暂停状态, 直到DMA操作结束 进入保持状态, 直到DMA操作结束 进入等待状态, 直到DMA操作结束 2、有一个实时数据采集系统,要求10ms进行一次数据采集,然后进行数 据处理及显示输出,应采用的数据传送方式为()。 无条件传送方式查询方式 中断方式直接存储器存取方式 3、在数据传送过程中,数据由串行变并行,或由并行变串行的转换可通过 ()来实现。 计数器寄存器移位寄存器D触发器 4、8088 CPU输入/输出指令可寻址外设端口的数量最大可达()个。 128 256 16K 64K 5、CPU响应中断后,通过()完成断点的保护。

执行开中断指令执行关中断指令 执行PUSH指令内部自动操作 6、并行接口芯片8255A具有双向数据传送功能的端口是()。 PA口PB口PC口控制口 7、8088CPU处理动作的最小时间单位是()。 指令周期时钟周期机器周期总线周期 8.堆栈是内存中()。 先进先出的ROM区域后进先出的ROM区域 先进先出的RAM区域后进先出的RAM区域 9、计算机中广泛应用的RS-232C实质上是一种()。 串行接口芯片串行通信规程(协议) 串行通信接口标准系统总线标准 5--1 10、高速缓冲存储器(CACHE)一般是由()芯片组成。 SRAM DRAM ROM EPROM 11、鼠标器是一种()。 手持式的作图部件手持式的光学字符识别设备 手持式的座标定位部件手持式扫描器 12、传送速度单位“bps”的含义是()。

微机原理习题及答案

一、选择 1、在微型计算机中,微处理器的主要功能是进行( )。 D A、算术运算 B、逻辑运算 C、算术、逻辑运算 D、算术、逻辑运算及全机的控制 2、Pentium I属于()位CPU C A、16 B、8 C、32 D、64 3、Intel 8086属于()位CPU A A、16 B、8 C、32 D、64 4、CPU与I/O设备间传送的信号通常有( ) D A、控制信息 B、状态信息 C、数据信息 D、以上三种都有 5、存储器用来存放计算机系统工作时所需要的信息,即( )。 D A、程序 B、数据 C、技术资料 D、程序和数据 6、运算器的核心部件是( )。 D A、加法器 B、累加寄存器 C、多路开关 D、算逻运算单元 二、填空 1、内存可分为2大类:随机存储器RAM 和 2、数据总线是向的,地址总线是向的。 3、计算机的五大部件是:、、、、输出设备 4、总线可分为三类:、、 5、存储程序工作原理最先由提出 6、在计算机内部,一切信息的存取、处理和传送都是以形式进行的。 1、只读存储器ROM 2、双、单 3、运算器、控制器、存储器、输入设备 4、地址总线、数据总线、控制总线 5、冯·诺依曼 6、二进制 三、简答 1、冯·诺依曼型计算机的特点是什么 (1).以二进制表示指令和数据 (2).程序和数据存放在存储器中,从存储器中取指令并执行 (3).由运算器、控制器、存储器、输入设备、输出设备构成计算机硬件系统。 一、选择 1、在机器数______中,零的表示形式是唯一的()。BD A、原码 B、补码 C、反码 D、移码 2、计算机内部表示带符号整数通常采用()。C A、原码 B、反码 C、补码 D、移码

微机原理及接口技术考试各章重点题库及答案

微机原理与接口技术试题库 第一章基础知识 一、填空 1、计算机中采用二进制数,尾符用B 表示。 2、西文字符的编码是ASCII 码,用 1 个字节表示。 3、10111B用十六进制数表示为H,八进制数表示为O。 4、带符号的二进制数称为真值;如果把其符号位也数字化,称为原码。 5、已知一组二进制数为-1011B,其反码为10100B ,其补码为10101B 。 6、二进制码最小单位是位,基本单位是字节。 7、一个字节由8 位二进制数构成,一个字节简记为1B ,一个字节可以表示256 个信息。 8、用二进制数表示的十进制编码,简称为BCD 码。 9、8421码是一种有权BCD 码,余3码是一种无权BCD 码。 二、选择 1、计算机中采用 A 进制数。 A. 2 B. 8 C. 16 D. 10 2、以下的 C 编码是一种有权码。 A. 循环码 B. BCD码 C. 8421码 D. 余3码 3、八进制数的尾符是 B 。 A. B B. O C. D D. H 4、与十进制数254等值的数是 A 。 A. 11111110 B. 11101111 C. 11111011 D. 11101110 5、下列不同数制表示的数中,数值最大的是 C 。 A. 11011101B B. 334O C. 1219D D. DAH 6、与十六进制数BC等值的数是B 。 A. 10111011 B. 10111100 C. 11001100 D. 11001011 7、下列字符中,ASCII码值最小的是 A 。 A. K B. Y C. a D. i 8、最大的10位无符号二进制整数转换成十进制数是C 。 A. 51 B. 512 C. 1023 D. 1024 9、A的ASCII码值为65D,ASCII码值为68D的字母是C 。 A. B B. C C. D D. E 10、下列等式中,正确的是 D 。 A. 1KB=1024×1024B B. 1MB=1024B

微机原理试题及答案

微机原理试题及答案 微机原理试题及答案 一、填空题(每空1分,共15分) 1、在计算机中,对带符号数的运算均采用补码。带符号负数1100 0011的补码为_10111101_。2、单片机通常采用“三总线”的应用模式,芯片内部设有单独的地址总线、数据总线_ 和控制总线。 3、当使用80C51单片机时,需要扩展外部程序存储器,此时EA应为_0__。 4、若(A)=B3H,(R0)=A8H,执行指令XRL A,R0之后,(A)=_1BH__。 5、在80C51单片机中,带借位减法SUBB指令中,差的D7需借位时,_CY_=1,差的D3需借位时,AC_=1。 6、80C51单片机中,在调用子程序前,用_PUSH__指令将子程序中所需数据压入堆栈,进入执行子程序时,再用___POP__指令从堆栈中弹出数据。 7、在十六进制数与ASCII码值的转换过程中,当十六进制数在0~9之间时,其对应的ASCII码值为该十六进制数加___30H______。 8、外部中断INT0和INT1有两种触发方式:___电平触发方式_____和__边沿触发方式__。 9、在单片机串行通信中,依发送与接收设备时钟的配置情况,串行通信可以分为 __异步通信___和__同步通信_。10、若累加器A中的数据为

0111 0010B,则PSW中的P=__0___。二、选择题(每题1分,共15分) 1、单片机是在一片集成电路芯片上集成了以下部分,除了( D ) A、微处理器 B、存储器 C、I/O接口电路 D、串口通信接口2、一个机器周期包含多少个晶振周期(D ) A、2 B、6 C、8 D、12 3、80C51单片机有21个特殊功能寄存器,其中与串行口相关的有以下几个,除了( B ) A、SBUF B、TCON C、SCON D、PCON 4、 80C51系列单片机具有4个8位的并行I/O口,其中哪个口工作时需要外接上拉电阻(A ) A、P0 B、P1 C、P2 D、P3 5、寄存器中的内容为地址,从该地址去取操作数的寻址方式称为( C ) A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、变址寻址6、源地址为1005H。目的'地址为 0F87H。当执行指令“JC rel”时,rel为( B )。A、7EH B、80H C、82H D、84H 7、若(R0)=30H,(30H)=75H,(75H)=90H,执行指令MOV A,@R0后,(A)=__B____。A、30H B、75H C、90H D、00H 8、下列哪个语句是起始地址设置伪指令( A )。A、ORG B、END C、DW D、EQU 9、在80C51单片机中,各中断优先级最低的是( D )。A、外部中断0 B、外部中断1 C、定时器0 D、计数器1 10、80C51单片机的中断响应时间至少需要( C )个完整的机器周期。A、1 B、2 C、3 D、5 11、在80C51单片机中,

《微机原理》复习题及解答

微机原理》复习题解答 1、在8086/8088系统中,存储器是怎样组织的?整个存储空间有多大?最大逻辑长度为多大?至少可将存储器分为多少个段?段起始于什么位置?偏移地址是什么?怎样计算20位物理地址? ①分段组织②1兆字节③64K字节④至少分成16段⑤起始于最后四位二进制数都为0的位置⑥偏移地址是相当于段起始位置的偏移量⑦段地址×16+偏移地址 2、系统总线分为哪几组?各自传送的方向如何? ①分成3组:数据部线、地址总线、控制总线②数据总线和控制总线都是双向的,地址总线始终由CPU发出 3、8086微处理器分为哪几个部分?它们之间采用什么工作方式?其中状态寄存器由几类标志组成?与中断有关的是哪一位? ①分成2部分:总线接口部件、执行部件②并行工作方式③2类:状态标志、控制标志④IF 位,IF置1,响应外部可屏蔽中断 4、怎样将8086设置为最小或最大模式?分别应配置哪些外围器件?作用怎样?最大模式与最小模式的配置相比多了什么器件?作用是什么? ①引脚接高电平则设置为最小模式,如接低电平则设置为最大模式②最小模式下:1片8248A,作为时钟发生器;3片8282或74LS373,用来作为地址锁存器;2片8286/8287作为总线收发器。最大模式下:1片8284A,3片8282,2片8286,1片8288总线控制器,1片8259A及有关电路③8284A除了提供频率恒定的时钟信号外,还对准备发(READY)和(RESET)信号进行同步。8282:地址/数据总线是复用的,而和S7也是复用的,所以在总路线周期前一部分时间中输出地址信号和信号的引脚,在总线周期的后一部分时间中改变了含义。因为有了锁存器对地址和进行锁存,所以在总线周期的后半部分,地址和数据同时出现在系统的地址总线和数据总线上;同样,此时也在锁存器输出端呈现有效电平,于是确保了CPU对存储器和I/O端口的正常读/写操作。8286/8287:当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力。④多了1片8288。作用:对CPU 发出的S0,S1,S2控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号。 5、8086/8088系统中为什么将数据与地址总线复用? 因为数据线与地址线传送时间不一样,在总线周期T1传送地址,其他时刻传送数据,传送数据和地址时间是分离的,所以8086/8088系统中能将数据线与地址线复用。 6、CPU从奇地址或偶地址读写一个字(或字节)时,和A0是什么电平?分别用几个总线周期? A0 操作总线周期 0 0 从偶地址开始读/写一个字1个 1 0 从偶地址单元或端口读/写一个字节1 个 0 1 从奇地址单元或端口读/写一个字节1个 1 1 0 从奇地址开始读/写一个字2个(在第一总线周期,将低8位数据送到AD15—AD8,在第二个总线周期,将高8位数据送到AD7—AD0) 7、CPU的READY和RESET信号有什么作用?

微机原理课后习题答案

第一章 学习指导: 1.掌握十六进制、二进制、BCD(十进制数)、ASCII码 2.掌握有符号数(补码、原码)、无符号数计算机的表示方法以及表示范围 3.掌握补码运算 4.了解计算机基本组成及工作原理 5.了解新技术 6.了解计算机主要性能指标 2、完成下列数制之间的转换。 (1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。 答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。 组合型:254=(001001010100)BCD 非组合型:254=(00000010 00000101 00000100)BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少? 答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~ -32768。 9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。 (1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确 [X-Y]补=10111001B=00010010+10100111=(-71D)补正确 (2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确 (3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确 [X-Y]补=00010010+00001111=00100001B=(33D)补正确 (4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。 13、微型计算机的主要性能指标有哪些? 答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。 第二章 学习指导: 1.了解8086微处理器的基本组成及工作原理 2.掌握通用寄存器(AX、BX、DX、CX、SI、DI、SP、BP)段寄存器(CS、SS、DS、ES)标志寄存器(状态标志位和控制标志位含义)作用 3.掌握逻辑地址、物理地址以及它们之间的关系物理地址=段基址x16+偏移地址 4.掌握逻辑地址和物理地址表示形式2000:0100,20100 5.存储器地址的表示图2-5 6.主要引脚RD、WR、M/IO、INTR、INTA、NMI、HOLD、HLDA

微型计算机原理与应用试题库答案

《微型计算机原理及应用》试题库及答案 一、填空 1.数制转换 A)125D=(0111 1101 )B =(175 )O=(7D )H=(0001 0010 0101 )BCD B)10110110B=(182 )D =(266)O=(B6 )H=(0001 1000 0010)BCD 2.下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号整数0~ 255 ;单字节有符号整数-127 ~127 。 (注:微型计算机的有符号整数机器码采用补码表示,单字节有符号整数的范围为-128~+127。)3.完成下列各式补码式的运算,并根据计算结果设置标志位SF、ZF、CF、OF。指出运算结果 有效否。 A)00101101+10011100=11001001B SF=1 ZF=0 CF=0 OF=0 B)11011101+10110011=10010000B SF=1 ZF=0 CF=1 OF=0 4.十六进制数2B.4H转换为二进制数是_0010 1011.0100B ,转换为十进制数是_43.25。 5.在浮点加法运算中,在尾数求和之前,一般需要操作,求和之后还需要进行和 舍入等步骤。 6.三态门有三种输出状态:低电平、高电平、高阻态状态。 7.字符“A”的ASCII码为41H,因而字符“E”的ASCII码为45H ,前面加上偶 校验位后代码为。 8.数在计算机中的二进制表示形式称为机器数。 9.在计算机中,无符号书最常用于表示。 10.正数的反码与原码相等。 11.在计算机中浮点数的表示形式有整数和小数两部分组成。 12.微处理器中对每个字所包含的二进制位数叫字节。 13.MISP是微处理的主要指标之一,它表示微处理器在1秒钟内可执行多少

微机原理习题集以及答案

1 第一部分 例题与习题 第1章 微型计算机基础 1.1 例 题 1.把十进制数137.875转化为二进制数。P7 解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。 整数部分:一般采用除2取余法 小数部分:一般采用乘2取整法 余数 低位 整数 高位 2 | 137 0.875 2 | 68 × 2 2 | 34 1.750 2 | 17 × 2 2 | 8 1.500 2 | 4 × 2 2 | 2 1.000 1 高位 低位 (137)10=(10000111) 2 (0.875)10=(0.1101)2 所以,(137.875)10=(10001001.111)2 2.把二进制数10011.0111转换为八进制数和十六进制数。P9 解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。 (10 011.011 1)2=(010 011.011 100)2=(23.34)8 (1 0011.0111)2=(0001 0011.0111)2=(13.7)16 3.将八进制数23.34转换为二进制数。P9 解:(23.34)8=(010 011.011 100)2=(10011.0111)2 4.X=0.1010,Y=-0.0111,求[X -Y]补,并判断是否有溢出?P11 解:[X -Y]补=[X]补+[-Y]补 [X]补=0.1010 [Y]补=1.1001 [-Y]补=0.0111 0.1010 0.0111 1.0001 + -------------- 1 -------------- 0 -------------- 0 -------------- 1 -------------- 0 -------------- 0 -------------- 0 -------------- 1 ------------- 1 ------------- 1 ------------- 1

微机原理(第三版)课后练习答案

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

微机原理选择题库

微机第一章 1.运算器和控制器合称为(B)。A逻辑部件B中央处理器C寄存器D逻辑运算器 2.微型计算机是以(B)为核心部件。A寄存器B微处理器C逻辑部件D控制部件3.微型计算机系统的以(C)为主体。A系统软件B外部设备C微型计算机D操作系统 4.中央处理器英文缩写是(B)。A MP B CPU C CU D ALU 5.计算机中所有信息都用(A)进制数码表示。A2B10C16D12 6.微机中普遍使用(A)单位。A byte B KB C bit D G 7.高档微机主频达到(B)。A80HZ~100HZ B80MHZ~300MHZ C800MHZ~500MHZ D8HZ~3HZ 8.主机主要由(D)和内存储器。A硬件B软件C外存储器D微处理器 9.不属于微机的是(D)。A4位微机B8位微机C16位微机D30位微机 10.不属于微机应用特点的是(D)。A轻便、功耗低B性能可靠C结构灵活适宜性好D应用面窄 11.具有(A)个稳态电路称为2值电路。A2B3C4D5 12.数制是按进位原则进行(A)的科学方法。A计数B输出C输入D编程13.10进制的数码是(A)。A0.1.2.3.4.5.6.7.8.9B1.2.3.4.5.6.7.8.9. C1.2.3.4.5.6.D0.1.2.3. 14.2进制数码是(B)。A1.0.B0.1.C1.1D0.0. 15.数制中使用的数码个数称为(A)。A基B字C项D位 16.每个数位上表示的值的大小称为(B)。A项权值B位权值C权值D项位17.整数部分转换规则:(A)基取余数。A除B加C减D乘 18.小数部分转换规则:(A)基取余数。A乘B加C减D除 19.1位10进制数用(B)位2进制编码表示。A2B4C6D8 20.ASCII码是(A)。A美国信息交换标准码B英国信息交换标准码C2进制编码D 信息汉字编码 2 21.数有(A)数之分。A有符号数B倒数和非倒数C小数和非小数D奇数和偶数22.天符号数是(B)。A负数B正数C倒数D奇数 23.计算机中数的正、负用(A)表示。A0.1B1.0C00.11D11.00 24.计算机中的基本运算由(A)完成。A ALU B CPU C PC D ASCII 25.ALU能进行(A)进制运算,也能进行布尔代数运算。A2B4C6D8 26.计算机中加、减运算采用(C)码。A正B负C补D数 27.计算机中加、减运算采用补码,不仅十分便宜,且不用判断(A)。A正负号B方向C奇数D偶数 28.计算机指令是根据(D)硬件结构特点设计的。A RAM B ASCII C ALU D CPU 29.段址寄存器英文缩写(A)。A CS B ALU C PC D IP

微机原理习题集以及答案

第一部分 例题与习题 第1章 微型计算机基础 例 题 1.把十进制数转化为二进制数。P7 解:把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。 整数部分:一般采用除2取余法 小数部分:一般采用乘2取整法 余数 低位 整数 高位 2 | 137 2 | 68 × 2 2 | 34 2 | 17 × 2 2 | 8 2 | 4 × 2 2 | 2 1 高位 低位 (137)10=() 2 10=2 所以,10=(.111)2 2.把二进制数转换为八进制数和十六进制数。P9 解:八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。 (10 1)2=(010 100)2=8 (1 2=(0001 2=16 3.将八进制数转换为二进制数。P9 解:8=(010 100)2=2 -------------- 1 ------------ -- 0 ------------ ------------- 1 ------------

4.X=,Y=-,求[X-Y]补,并判断是否有溢出P11 解:[X-Y]补=[X]补+[-Y]补 [X]补= [Y]补= [-Y]补= + 说明:当异号相减运算时,通过补码,减法运算转化为两个正数的加法运算,结果为负(符号位为1),表示运算结果溢出。 5.B分别为原码、补码、BCD码表示时,对应的十进制数为多少 解:[X]原=,X=-21 [X]补=,[X]原=,X=-107 [X]BCD=,X=95 6.简述计算机为什么能实现自动连续的运行 解:计算机能实现自动连续的运行,是由于计算机采用了存储程序的工作原理。把解决问题的计算过程描述为由许多条指令按一定顺序组成的程序,然后把程序和处理所需要的数据一起输入到计算机的存储器中保存起来。计算机接收到执行命令后,由控制器逐条取出并执行指令,控制整个计算机协调地工作,从而实现计算机自动连续的运行。 习题 1.选择题 (1)8086是()。 P1 A.微机系统B.微处理器 C.单板机 D.单片机 (2)下列数中最小的数为()。P7 A.(101001)2B.(52)8C.(2B)16D.(50)10 (3)下列无符号数中,其值最大的数是()。P7 A.()2 B.(227)8C.(96)16 D.(150)10 (4)设寄存器的内容为,若它等于-127,则为()。P10 A.原码 B.补码 C.反码 D.ASCII码 (5)在小型或微型计算机里,普遍采用的字符编码是()。P13 A.BCD码 B.16进制 C.格雷码 D.ASCII码 (6)若机器字长8位,采用定点整数表示,一位符号位,则其补码的表示范围是( P12 )。

相关主题
文本预览
相关文档 最新文档