文档库 最新最全的文档下载
当前位置:文档库 › 微机原理及接口第四章习题答案

微机原理及接口第四章习题答案

微机原理及接口第四章习题答案
微机原理及接口第四章习题答案

“微机系统原理与接口技术”第四章习题解答

1.判断以下说法是否正确,如有错,请说明原因并改正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。

(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。

答:(1)正确。

(2)错误。宏不能精简目标代码。

(3)错误。高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

2.已知数据和符号定义

A1 DB ?

A2 DB 8

K1 EQU 100

判断下列指令的正误,并说明错误指令的原因。

(1)MOV K1,AX

(2)MOV A2,AH

(3)MOV BX,K1

MOV [BX],DX

(4)CMP A1,A2

(5)K1 EQU 200

答:(1)错误。K1是符号常数,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)正确。

(4)错误。A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

(5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

3.若数据段中有定义

NUM1 EQU 23H

NUM2 DW 0

则指令MOV NUM2,NUM1 的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?

答:指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM2+1单元的内容是0。

4.设DS=6000H,BX=8432H,SS=5000H,SP=3258H,内存69632H~69635H单元的内容依次是00H、11H、22H、33H。4字节指令CALL DWORD PTR [BX+1200H] 本身位于2000H:3250H处的双字单元中。当8086执行该指令后转移至子程序入口时,CS、IP、SS、SP各寄存器以及栈顶2个字单元的内容分别是多少?

答:执行结果为CS=3322H,IP=1100H,SS=5000H,SP=3254H,栈顶的两个字即

断点地址,为2000H:3254H。

5.已知某数据段从物理地址03000H处开始,定义如下:

DSEG SEGMENT

ORG 2000H

A1 DD 2 DUP(7,1,?)

A2 DB 10 DUP(0,4,3 DUP(2),5)

CNT EQU 20H Array A3 DW 100 DUP(?)

DSEG ENDS

请分别用分析运算符SEG、OFFSET、LENGTH、SIZE、TYPE求出

A1、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。

答:(SEG A1)=0300H,(OFFSET A1)=2000H,(TYPE A1)=4,

(LENGTH A1)=2,(SIZE A1)=2×4=8;

(SEG A2)=0300H,(OFFSET A2)=2018H,(TYPE A2)=1,

(LENGTH A2)=10,(SIZE A2)=10×1=60;

(SEG A3)=0300H,(OFFSET A3)=2054H,(TYPE A3)=2,

(LENGTH A3)=100,(SIZE A3)=100×2=200

6.已知符号定义语句如下:

ALPHA EQU 100

BETA EQU 25

GAMMA EQU 2

分别求下列各表达式的值。

(1)ALPHA*4 GT BETA= 100*4 GT 25 = 0FFFFH

(2)ALPHA MOD GAMMA+BETA= 100 MOD 2+25 = 25

(3)(BETA / 3)LE 5 =(25 / 3)LE 5 = 0

(4)ALPHA AND BETA= 100 AND 25 = 64H & 19H = 0

(5)GAMMA XOR(BETA EQ 25)= 2 (25 EQ 25) = 0FFFDH

7.已知数据段定义如下:

DSEG SEGMENT

ORG 6

ARA1 DD 110009H

ARA2 DW 2 DUP(?),‘64’

CONT1 EQU $-ARA2

COUT2 EQU ARA2 -ARA1

ARA3 DB CONT1 DUP(0FFH)

ARA4 DB 2 DUP (?, CONT2 DUP (5), ’$’ )

ORG $+2

V AR2 DW 569AH

DB ‘AB’

DSEG ENDS

用示意图说明该数据段的存贮单元分配情况。

题4-7 图

答:有关存储单元的内容如右图所示。

8.下列程序是否有错?如有错,请改正。该程序完成什么功能?。

DA TA SEGMENT

INBUF DW 100 DUP(?)

OUTBUF DW 100 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA

MAIN PROC FAR

MOV AX,DA TA

MOV DS,AX

INIT:MOV SI,OFFSET INBUF

LEA DI,OUTBUF

MOV CX,100

REP MOVSB

MAIN ENDP

CODE ENDS

END MAIN

答:改正之后的源程序清单如下(下划波浪线的语句是原来没有的或有错之处):DATA SEGMENT

INBUF DW 100 DUP(?)

OUTBUF DW 100 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA ;原ASSUME语句未说明ES MAIN PROC FAR

PUSH DS ; 补充的三条指令为主程序返回提供正确的地址

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX ; MOVS指令以ES:DI为目的串指针,故应对ES赋值INIT:MOV SI,OFFSET INBUF

LEA DI,OUTBUF

MOV CX,100

CLD ; 从首址开始传送,应使D F=0

REP MOVSW ; 应传送的是100个字而非字节

RET; 程序结束,返回DOS

MAIN ENDP

CODE ENDS

END MAIN

该程序完成的功能是:将INBUF表内的10个字数据复制到以OUTPUT开始的连续的内存单元中。

9.读下面程序,在其中的空处添上适当内容。该程序完成了什么功能?程序运行后,变量RS的值是多少?

DA TA SEGMENT

BUF DB -13,24,5,-62,77,20,-7,145,0

CNT DB $ -BUF

RS DB 0

DA TA ENDS

STACK SEGMENT PARA STACK‘STACK’

DB 256 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME DS:DA TA,SS:STACK,CS:CODE

START PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,DA TA

MOV DS,AX

LEA BX,BUF

MOV CH,0

MOV CL,

LP:MOV AL,[BX]

TEST AL,80H

JE CONT

INC RS

CONT:INC BX

LOOP LP

RET

START ENDP

CODE ENDS

END START

答:程序空处可填CNT,字节变量RS的最后结果是04H。该程序实现的功能是:统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。需要注意的是:十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。

10.编写一个完整的源程序,将数据35、-27、-13、6、-47、52、9、-3中的正数放入以BUFFER为首址的数据缓冲区中。

答:一种可能的程序如下实现:

DATA SEGMENT

BLOCK DB 35,-27,-13,6,-47,52,9,-3

COUNT EQU $-BLOCK

BUFFER DB COUNT DUP(?)

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 40 DUP(?)

STACK ENDS

CODE SEGMENT

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

BEGIN:MOV AX,DATA

MOV DS,AX

MOV ES,AX ;需用STOS串操作指令

MOV CX,COUNT

LEA SI,BLOCK ;源数据区指针

LEA DI,BUFFER ;正数存放区指针

CLD ;自动增量

AGAIN:LODSB ;取源数据,并修改SI

TEST AL,80H ;取符号位,不影响AL

JS GO ;符号位=1,是负数,不存

STOSB ;存正数并修改DI

GO:LOOP AGAIN

MOV AH,4CH ;退出循环,返回DOS

INT 21H

CODE ENDS

END BEGIN

11.已知有一个长100个字的数据块,存放在以3DA0H:1000H开始的存储区域内。试编写一个完整的汇编语言程序,将该数据块复制到以3DA0H:1008H开始的存储区内。

答:一种可能的程序如下实现:

DATA SEGMENT AT 3DA0H

ORG 1000H

BLOCK DW 104 DUP(?)

DATA ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DB 100 DUP(?)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATA

MAIN PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,SEG BLOCK

MOV DS,AX

MOV ES,AX

MOV CX,200 ;重复次数

LEA SI,BLOCK

ADD SI,199 ;SI=10C7H

MOV DI,SI

ADD DI,8 ;DI=10CFH

STD ;自动减量

REP MOVSB

RET

MAIN ENDP

CODE ENDS

END MAIN

简析:

由题意可知,源数据区(占用地址3DA0:1000H~3DA0:10C7H,共200个字节)与目标数据区(占用地址3DA0:1008H~3DA0:10CFH,共200个字节)是重叠的。若从首址开始增量传送(D F=0),将破坏1008H以后的源数据,所以必须从末址向首址减量传送(D F=1)。

数据段初始化时,有以下几点需注意:段基址规定为3DA0H,故应在段定义伪指令SEGMENT后加上A T语句;源数据区首址的偏移量规定为1000H,故应使用ORG 语句指明;对源、目标数据区进行定义时,应注意目标数据区首址的偏移量是1008H。如果定义为:

ORG 1000H

SOUR DW 100 DUP(?);源数据区

DEST DW 100 DUP(?);目标数据区

则目标数据区首址的偏移量实际上是10C8H,不合题意。可将它们统一定义为足够长度(至少104字或208字节)的变量,如参考程序所示。

指针初始化时,可以将SI、DI分别置为10C7H、10CFH,且CX=200,即进行字节的传送,使用MOVSB;亦可将SI、DI分别置为10C6H、10CEH,且CX=100,即进行字的传送,相应使用MOVSW。

12.从内存单元BUF开始的缓冲区中有7个8位无符号数,依次为13H、0D8H、92H、2AH、66H、0E0H、3FH。编程找出它们的中间值并放入RES单元,且将结果以“(RES) = ?”的格式显示在屏幕上。

答:一种可能的程序如下实现:

DATA SEGMENT

BUF DB 13H,0D8H,92H,2AH,66H,0E0H,3FH

RES DB ?;中间数的存放单元

STR DB ‘(RES)=’

STR1 DB ?,?,‘$’;结果字符串

DATA ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DB 100 DUP(?)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATA

MAIN PROC FAR ;主程序

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

MOV CX,6 ;外循环次数,比6次

AGN:MOV SI,OFFSET BUF

MOV DI,SI

INC DI ;SI、DI指向相邻2数

MOV DX,6 ;内循环次数,比6次

AGN1:MOV AL,[SI]

CMP AL,[DI] ;两个无符号数相比较

JB UNCH ;小于则转,不互换

EXCH:XCHG AL,[ DI ] ;前1单元较大,则互换

MOV [ SI ],AL ;大数放在后面

UNCH:INC SI ;修改指针,指向下一个数

INC DI

DEC DX

JNZ AGN1 ;未处理完,继续内循环

LOOP AGN ;外循环

DONE:MOV AL,[SI-3] ;排序完成,取中间数

MOV RES,AL

AND AL,0F0H ;分离高半字节

MOV CL,4

SHR AL,CL

CALL BATR ;调子程序,将AL值转换为ASCII码

LEA DI,STR1 ;DI指向结果单元

CLD

STOSB ;存放转换结果

MOV AL,RES

AND AL,0FH ;分离并转换低半字节

CALL BATR

STOSB

LEA DX,STR ;显示整个字符串

MOV AH,09H

INT 21H

RET

MAIN ENDP ;主程序MAIN结束

;子程序BATR,实现16进制数到ASCII码的转换

BATR PROC NEAR

CMP AL,10 ;入口参数为AL

JB NUM ;是数字,则转NUM

ADD AL,’A’-10-’0’;字母

NUM:ADD AL,’0’

RET

BATR ENDP ;子程序结束

CODE ENDS

END MAIN

简析:

本例的基本思路是:先把7个无符号数按大小排序,排序完成之后取位于中间的一个数即为中间值。然后将该16进制数转换为两个对应的ASCII码,再与要求的格式字符一起输出送显即可。

数据排序可以是从大到小、或从小到大排列,本参考程序完成从小到大排序,由一个双重循环结构实现。内循环完成一个数与其它数之间的一一比较,并使每次比较所得的小数置于低地址单元。外循环实现所有数之间的两两相较。共7个数据,故内、外循环中的比较次数均为6次。

编程时需注意:无符号数比较大小应使用JA、JB、JAE、JBE指令,本例完成从小到大的排列,故用JB控制转移到UNCH;若要从大到小排列,则用JA代替JB即可。

对两个循环体进行初始化时,需仔细考虑指针和循环控制寄存器的初值。在数据段的定义中,分别定义STR、STR1两个变量名字,是为了便于在STR1处存放转换结果;显示时使DX直接指向STR,以STR1末尾的“$”为结束符。中间值找出之后,应把高、低半字节相分离,并分别转换为各所对应的ASCII码。

13.设某测试系统中,1号端口为测试口,所得数据是0~9之间的十进制整数;2号端口为显示口,对应于数字0~9的LED七段共阴显示码依次为:3FH、06H、5BH、4FH、66H、6DH、3DH、07H、7FH、6FH。编写一段查表送显的程序,要求:先从测试口读入一个数据,再查表将相应的显示码从显示口送出,如此反复进行直至读入数据“0FFH”为止。

答:一种可能的程序如下实现:

DATA SEGMENT

TAB DB 3FH,06H,5BH,4FH,66H

DB 6DH,3DH,07H,7FH,6FH ;0~9的七段码

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 50 DUP(?)

STACK ENDS

CODE SEGMENT

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

START:MOV AX,DATA

MOV DS,AX

LEA BX,TAB ;BX指向表首址

NEXT:IN AL,1 ;从测试口输入

CMP AL,0FFH

JE STOP ;是0FFH,结束

XLAT TAB ;不是0FFH,查表转换

OUT 2,AL ;向显示口输出七段码

JMP NEXT ;继续测试

STOP:MOV AH,4CH

INT 21H

CODE ENDS

END START

14.编程实现以下操作:从键盘输入4个数字,分别作为2个10~99之间的十进制数。求它们的和,并把结果以三位十进制数的形式显示在屏幕上。要求:输入回显的两个加数与送显的和之间有适当的分隔,以示区别。格式可自行拟定。

答:一种可能的程序如下实现:

DATA SEGMENT

NUM1 DB ?,?;加数1,高位在前,以非组合BCD码存放

NUM2 DB ?,?;加数2,高位在前,以非组合BCD码存放

SUM DB ?,?,?,‘$’;存放结果的ASCII码,以‘$’为结束符

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 50 DUP(?)

STACK ENDS

CODE SEGMENT

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

FIRST:MOV AX,SEG NUM1

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

CLD ;自动增量,先输入高位

MOV CX,2

LEA DI,NUM1 ;输入加数1

IN1:MOV AH,1 ;DOS功能调用,单字符输入

INT 21H

AND AL,0FH ;ASCII码转换为非组合BCD码

STOSB

LOOP IN1

MOV DL,‘+’;输出加号,以分隔2个加数

MOV AH,2

INT 21H

MOV CX,2

LEA DI,NUM2 ;输入加数2

IN2:MOV AH,01H

INT 21H

AND AL,0FH

STOSB

LOOP IN2

MOV DL,‘=’;输出等号,分隔加数与结果

MOV AH,02H

INT 21H

LEA SI,NUM1

INC SI ;SI指向加数1的低位

LEA BX,NUM2

INC BX ;BX指向加数2的低位

LEA DI,SUM

ADD DI,2 ;DI指向结果的末单元

STD ;自动减量,由低向高相加

MOV CX,2 ;相加次数

CLC ;清进位,准备用ADC

AD:LODSB ;取加数1的低位,修改SI

ADC AL,[BX] ;2数相加,带进位

AAA ;未组合BCD码的十进制调整

PUSHF

ADD AL,30H ;BCD码向ASCII码转换

POPF

;因未组合BCD码的高4位为0,故加30H不会影响C F

STOSB ;存和,并修改DI。C F不变

DEC BX ;指向加数2的高位。C F不变

LOOP AD

ADC BYT E PTR [DI],30H ;BCD码向ASCII码转换

;高位相加若产生进位,则使SUM单元加1(表示百位),故使用ADC指令

LEA DX,SUM ;输出结果

MOV AH,09H

INT 21H

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END FIRST

简析:

按照本参考程序,屏幕显示格式如“73+46=119”的样式。基本思路是:首先调用DOS功能,从键盘输入2个0~9之间的数字(字符串输入的AH调用号为10,单个字符输入的AH调用号为1),然后向CRT输出“+”(单个字符输出的AH调用号为2);再由键盘输入2个数,然后输出“=”。将两次输入的数分别作为2个加数相加,得到的和经十进制调整后,向CRT输出(字符串输出的AH调用号为9)。

以下几处需进行码制转换:调用单个字符输入功能后,AL中的出口参数为各数字键所对应的ASCII码,故应转换为BCD码才能进行加运算。转换方式:与0FH相与,所得为未组合BCD码。2个未组合BCD码相加,和应该用AAA指令进行十进制调整,调整结果反映在累加器和标志位C F上。加法完成之后,应将结果逐位转换为ASCII码,才可以向CRT输出。

做加法运算时还应注意:加数输入之后,先取两个低位相加,再取高位相加(同时加上低位相加产生的进位),需仔细检查指针。若用循环结构完成加运算,则进入循环之前必须清C F,方可在循环体中使用ADC指令。

15.有一个长度不超过100字节的字符串,以回车符结尾。编程统计其中非空格的字符个数,并将统计结果以自拟格式显示在CRT上。

答:一种可能的程序如下实现:

DATA SEGMENT

STR DB ‘It’’s a fine day, isn’’t it?’,0DH,‘$’

;依题意以0DH为结束符。加上“$”便于显示整个字符串

COUNT EQU $-STR-2 ;串长中不包括结束符和“$”符号NUM DB 0 ;置统计结果初值为0

STR1 DB ‘The number of non-space charactors is’,‘$’

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

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

MOV DS,AX

MOV ES,AX ;有SCAS指令,需用ES

LEA DI,STR

CLD

MOV AL,20H ;关键字符(空格)

MOV CX,COUNT

NEXT:SCASB

JE SKIP ;是空格,跳过下一句

INC NUM ;非空格字符,NUM加1

SKIP:LOOP NEXT

LEA DX,STR ;显示原字符串

MOV AH,09H

INT 21H

MOV DL,0AH ;显示换行符,以便显示另一字串

MOV AH,2

INT 21H

LEA DX,STR1 ;显示另一个字符串

MOV AH,9

INT 21H

;将16进制的统计结果转换为十进制数,再转换为两个ASCII码输出

MOV AL,NUM

MOV AH,0 ;AX中为待转换16进制数

MOV BL,10

DIV BL ;AX / BL

;商(十位)在AL中,余数(个位)在AH中,均为未组合BCD码

PUSH AX ;入栈保护

OR AL,30H ;将十位数转换为ASCII码

MOV DL,AL ;送CRT显示

MOV AH,2

INT 21H

POP AX ;恢复除法运算的结果

ADD AH,30H ;将个位数转换为ASCII码

MOV DL,AH ;显示

MOV AH,2

INT 21H

MOV AH,4CH ;完成,返回DOS

INT 21H

CODE ENDS

END START

简析:

本例的关键在于统计结果的显示。统计完成后,结果单元中是一个16进制数。为符合一般习惯,应在CRT上显示十进制数,因此首先用除法将十位、个位分离开,再将其分别转换为ASCII码输出。由于除数是10,故相除之后得到的商(十位数)和余数(个位数)必在0~9范围内,即未组合BCD码,所以很容易转换为ASCII码。

编程时注意:DIV指令执行后结果在AX中,而DOS功能调用必须用AH为调用号,故应保护AX的内容。另外,原题已告知字串的结束符是0DH,故亦可通过检索结束符(0DH)的方式控制循环。

另外请注意:数据段中定义的STR串中出现的单引号前必须用另一个单引号转义,如“’s”应为“’’s”。

16.数据段中有1个由小写英文字母组成的字符串,编程将各小写字母转换成对应的大写字母,并存放起来。

答:一种可能的程序如下实现:

DSEG SEGMENT

STR1 DB ‘djdwpneasmv’,‘$’

COUNT EQU $-STR1-1

CHAR DB 0AH,0DH

STR2 DB COUNT DUP(?),‘$’

DSEG ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DW 100 DUP(?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,SS:SSEG,DS:DSEG,ES:DSEG

TRAN PROC FAR

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

LEA DX,STR1 ;显示小写字母串

MOV AH,9

INT 21H

CLD ;自动增量

LEA SI,STR1 ;SI指向小写字母串

LEA DI,STR2 ;DI指向结果存放处

MOV CX,COUNT;转换次数

NEXT:LODSB ;取1个小写字母至AL中SUB AL,‘a’;转换为大写字母

ADD AL,‘A’

STOSB ;存放

LOOP NEXT

MOV DX,OFFSET CHAR ;换行显示大写字母串

MOV AH,9

INT 21H

RET

TRAN ENDP

CSEG ENDS

END TRAN

微机原理试题及答案

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 。

微机原理习题解答第四章-

第四章 1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DL=01H

DH=10H (1000H=10H (2000H=01H 2.要求同题4.1,程序如下: MOV AL,50H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 解:寄存器及存储单元的内容如下: BL=00H BH=20H CL=00H CH=30H

DL=20H DH=20H BP=1000H (1000H=50H (2000H=20H 3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。 (1不用数据块传送指令。 (2用单个传送的数据块传送指令。 (3用数据块成组传送指令。 解:(1LEA SI,1000H LEA DI,2000H MOV CX,100 L1: MOV AX,[SI] MOV [DI],AX LOOP L1 HLT (2LEA SI,1000H LEA DI,2000H

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

《微机原理及应用》试题库 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 将下列十进制数转换为二进制数、十六进制数。 (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=

微机原理第四章课后习题答案

第四章课后作业(6—27) 6.试按下列要求分别编制程序段。 (1)把标志寄存器中符号位SF置“1”。 (2)寄存器AL中高、低四位互换。 (3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。 (4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。 (5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。 答: (1) LAHF OR AH,80H SAHF (2) MOV CL,4 ROL AL,CL (3) MOV CX,0 NEG BX JC CHG JMP GO CHG: MOV CX,1 GO: NEG AX SUB AX,CX (4) MOV CL,A MOV AL,B MOV X,AL CHECK:INC X DEC CL JNZ CHECK (5) OR CX,0001H 7.试给出下列各指令的机器目标代码。 (1)MOV BL,12H [SI] (2)MOV 12H [SI],BL (3)SAL DX,1 (4)AND 0ABH [BP] [DI],1234H

答:(1)100010 1 0 01 011 100 00010010=8A5C12H (2)100010 0 0 01 011 100 00010010=885C12H (3)110100 0 1 11 100 010=0D1E2H (4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010 =81A3AB003412H 8.执行下列指令: STR1 DW ‘AB’ STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT 执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少? 答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010; AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL中,所以AX=4142H=0100,0001,0100,0010。 9.JMP FAR PTR ABCD (ABCD是符号地址)的转移方式是什么? 答:段间直接转移。 10.按下列指令写出相应指令或程序段。 (1)写出两条使AX寄存器内容为0的指令。 (2)使BL寄存器中的高、低4位互换。 (3)现有两个带符号数分别在X1和X2变量中,求X1/X2,商和余数分别送入Y1和Y2中。 (4)屏蔽BX寄存器中的b4、b6、b11位。 (5)将AX寄存器的b4、b14位取反,其它位不变。 (6)测试DX寄存器的b0、b9位是否为“1”。 (7)使CX寄存器中的整数变为奇数(如原已经是奇数,则不变)。 答:(1)MOV AX,0 XOR AX,AX (2)MOV CL,4 ROL BL,CL (3)MOV AX,X1 CWD IDIV X2 MOV Y1,AX MOV Y2,DX (4)AND BX,1111 O111 1O10 1111 (5)XOR AX,0100 0000 0001 0000 (6)MOV AX,DX RCR AX,1 JC B0Y ;转向表示b0是1的标号为B0Y的程序段

微机原理习题第四章

一、问答题: 1、微型计算机是由哪几部分组成的?各部分的功能是什么? 微型计算机是由五部分组成,包括控制器,运算器,存储器、输入设备,输出设备; 控制器控制计算机运转,计算器主要是算术运臬和逻辑运算,存储器主要是存储信息,输入设备主要是输入信息给计算机,输出设备主要是计算机输出信息。 2、IBM PC机的主存有哪几种存储器?它们的作用各是什么? IBM PC机的主存主要有只读存储器和随机存储器。只读存储器只能读出,不能写入,随机存储器可以写入也可以读出。 3、8086微处理器的字长是多少?能直接访问的存储单元有多少字节? 8086微处理器的字长为16位,能直接访问的存储单元可以是2个字节。 4、8088微处理器的逻辑地址是由哪几部分组成的?怎样将逻辑地址转换为物理地址? 8088微处理器的逻辑地址两部分组成,包括段地址和偏移地址;物理地址=段地址 *16+偏移地址。 5、如果一个程序在执行前(CS)=0A7F0H,(IP)=2B40H,该程序的起始地址是多少? 如果一个程序在执行前(CS)=0A7F0H,(IP)=2B40H,该程序的起始地址=0A7F0H*16+2B40H=0AAA40H。 6、有两个16位字1234H和5678H分别存放在02000H为首地址的存储单元中,试用图表示存储数据的情况。 02003H 02002H 02001H 02000H 7、什么叫寻址方式?8088指令系统有哪几种寻址方式? 寻址方式就是指:寻找操作数或者操作地址的各种方法,寻址方式主要有7种 (1).立即数寻址 (2).寄存器寻址 (3).直接寻址 (4).寄存器间接寻址 (5).寄存器相对寻址方式 (6).基址变址寻址方式 (7).相对基址变址寻址方式 二、填空题 1、CPU中的总线接口部件BIU,根据执行部件EU的要求,完成与或的数据传送。

微机原理习题及答案

一、选择 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分,共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单片机中,

微机原理模拟试题4答案

模拟试题4参考答案 一、填空题(20) 1、1100100 144 64H 2、181 B5 3、11011010 10100101 10100110 4、-46 5、10100101 6、ALU 16 BIU 地址产生器20 7、2 512K 奇地址BHE 8、16 64K 9、程序控制方式中断控制方式DMA方式 10、段地址、偏移量 11、高速缓冲存储器;存取速度快、容量小、由SRAM组成 12、CF 、OF 13、(1)7 (2)4 (3)10 (4)1 (5)3 (6)9 (7)2 (8)5 (9)6 (10)8 14、总线宽度、工作速度、最大数据传输率 二、简答题 1.8086CPU分为哪两个工作部件?每个部件主要由什么组成? 答:8086CPU分为执行部件EU和总线接口部件BIU。 EU主要包括:ALU、标志寄存器、数据暂存器、通用寄存器组、控制单元。 BIU主要包括:指令队列缓冲器、地址加法器和段寄存器、指令指针寄存器IP、总线控制电路与内部通信寄存器。 2.什么是段基址?什么是段基值?它们之间的关系是什么? 答:段基址是指一个逻辑段在内存中的起始单元的20位物理地址; 段基值是指段的起始地址放入相应的段地址寄存器中的内容。 两者关系为:段基值=段基址/16 3.虚拟存储器的含义是什么?虚拟存储器的3种方式分别是什么? 答:虚拟存储器(Virtual Memory)是以存储器访问的局部性为基础,建立在主存—辅存物理体系结构上的存储管理技术。在存储系统中,由于主存容量不能满足用户的需要,因而引入辅存作为后援。即辅存作主存用,扩大编程者的使用空间。 3种方式分别为:页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器。 三、寻址方式的有效地址计算(10) 正确答案的序号为:C A B E D 四、在每小题的括号中分别填入执行结果(15)

微机原理第4章练习题及答案

第4章 80x86指令系统 一、自测练习题 ㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI) 2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。 A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI) 4.JMP WORD PTR[DI]是( )。 A.段内间接转移B.段间间接转移 C.段内直接转移D.段间直接转移 5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。 A.段内间接转移B.段间间接转移 C..段内直接转移D.段间直接转移 6.INC指令不影响( )标志。 A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。 A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。 A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是()。 A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令()完成同样的功能。 A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB 11.对于下列程序段: AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN 可用指令()完成。

《微机原理》习题参考答案4章

第4章 AT89C51单片机汇编语言程序设计 1.已知程序执行前有A = 02H,SP = 42H,(41H) = FFH,(42H) = FFH。下述程序执行后,A = ;SP = ;(41H) = ;(42H) = ;PC = 。 POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,@A+DPTR PUSH Acc MOV A,B INC A MOVC A,@A+DPTR PUSH Acc RET ORG 3000H DB 10H,80H,30H,80H,50H,80H 答:A=80H,SP=40H,(51H)=50H,(52H)=80H ,PC=8050H。 2.说明伪指令的作用。“伪”的含义是什么?常用伪指令的功能如何? 答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的 控制命令。只有在汇编前的源程序中才有伪指令。所以“伪”体现在汇编后, 伪指令没有相应的机器代码产生。 3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念。 答:(1)手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查 指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表 “翻译”指令的方法称为手工汇编。 (2)机器汇编:是借助于微型计算机上的软件(汇编程序)来代替手工汇编, 完成把助记符指令“翻译”成机器代码的工作。 (3)交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是 在另一台计算机(这里是单片机)上运行,称这种机器汇编为交叉汇编。 (4)反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程。4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB "MAIN" DW TAB1,TAB2,70H 答:4D 41 49 4E 12 34 30 00 00 70

微机原理第四章答案

“微处理器系统原理与嵌入式系统设计”第四章习题解答 4.3 微机系统中总线层次化结构是怎样的? 片内总线、片间总线、系统内总线、系统外总线.。 4.4 评价一种总线的性能有那几个方面? 总线时钟频率、总线宽度、总线速率、总线带宽、总线的同步方式和总线的驱动能力等。 4.5 微机系统什么情况下需要总线仲裁?总线仲裁有哪几种?各有什么特点? 总线仲裁又称总线判决,其目的是合理的控制和管理系统中多个主设备的总线请求,以避免总线冲突。当多个主设备同时提出总线请求时,仲裁机构按照一定的优先算法来确定由谁获得对总线的使用权。 集中式(主从式)控制和分布式(对等式)控制。集中式特点:采用专门的总线控制器或仲裁器分配总线时间,总线协议简单有效,总体系统性能较低。分布式特点:总线控制逻辑分散在连接与总线的各个模块或设备中,协议复杂成本高,系统性能较高。 4.6总线传输方式有哪几种?同步总线传输对收发模块有什么要求?什么情况下应该采用异步传输方式,为什么? 总线传输方式按照不同角度可分为同步和异步传输,串行和并行传输,单步和突发方式。同步总线传输时,总线上收模块与发模块严格按系统时钟来统一定时收发模块之间的传输操作。异步总线常用于各模块间数据传送时间差异较大的系统,因为这时很难同步,采用异步方式没有固定的时钟周期,其时间可根据需要可长可短。 4.12 串行传输的特点是什么? 1)传输方式可分为单工方式、半双工方式、全双工方式。 2)对传输速率有严格要求。 3)采用单条传输线来传输数据,减小了传输成本,增加了收发双方的复杂性。 4)传输过程中,由于引起误码,需差错控制。 4.14发送时钟和接收时钟与波特率有什么关系? 其关系如下: 1、同步通信是用时钟信号加载传输信号的,因些收发时钟频率=收发波特率; 2、异步通信情况下的话,接收时钟频率=n*(接收波特率) (其中n=1,16,64);发送时钟频率可以等于波特率,也可以为n*(发送波特率),但考虑到时钟与接收时钟一致,故发送时钟频率=n*(发波特率) (其中n=1,16,64) 。 4.15 异步串行通信中的起始位置和停止位置有什么作用?

微机原理试题及答案 (1)

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

9、计算机中广泛应用的RS-232C实质上是一种(3 )。 串行接口芯片串行通信规程(协议) 串行通信接口标准系统总线标准 5--1 10、高速缓冲存储器(CACHE)一般是由( 1 )芯片组成。 SRAM DRAM ROM EPROM 11、鼠标器是一种(3 )。 手持式的作图部件手持式的光学字符识别设备 手持式的座标定位部件手持式扫描器 12、传送速度单位“bps”的含义是( 2 )。 bytes per second bits per second baud per second billion bytes per second 二、填空题:(每空1分,共12分) 1、CPU在响应中断后,自动关中。为了能实现中断嵌套,在中断服务程序中, CPU必须在保护现场后,开放中断。 2、在计算机运行的过程中,有两股信息在流动,一股是数据,另 一股则是控制命令。 3、指令MOV BX,MASK[BP]是以 ss 作为段寄存器。 4、指令REPE CMPSB停止执行时,表示找到第一个不相等的字符 或 CX=0 。 5、设CF=0,(BX)= 7E15H,(CL)= 03H,执行指令 RCL BX,CL后, (BX) = ,(CF)=,(CL)=。0F0A9H 1 3 6、在8088 CPU中,一个总线周期是 CPU从存储器或I/O端口存取一个字 节的时间。 8253定时/计数器有 3 个独立的16位计数器,每个计数器都可按二进制或 bcd 来计数。 三、程序设计(共40分) 1.(10分)假设X和X+2单元与Y和Y+2单元中分别存放的是两个双

微机原理与接口技术习题答案4(1)

第4章汇编语言程序设计 1.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字 符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。 解:BUF DB "BONJOUR_BELLE" BUFR DB 100 DUP(?) MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1 2.利用移位、传送和相加指令实现AX的内容扩大10倍。 解:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。 XOR DX,DX SHL AX, 1 RCL DX, 1 MOV BX,AX MOV CX,DX SHL AX, 1 RCL DX, 1 SHL AX, 1 RCL DX, 1

ADD AX, BX ADC DX, CX 3.在缓冲区V AR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列; 如果V AR中保存的为有符号数,则再编写程序实现将其按递减关系排列。 解:V AR DW 1236,-432,3900 XOR SI,,SI MOV AX,V AR[SI] CMP AX, V AR[SI+2] JAE L1 XCHG AX, V AR[SI+2] L1: CMP AX, V AR[SI+4] JAE L2 XCHG AX, V AR[SI+4] L2: MOV V AR[SI], AX MOV AX,V AR[SI+2] CMP AX, V AR[SI+4] JAE L3 XCHG AX, V AR[SI+4] L3: MOV V AR[SI+2], AX 4.编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例 如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。解:利用移位指令完成。 XOR DX,DX MOV CX,8 L1: SHR AL,1 RCR DX,1

微机原理及应用 第4章 习题及答案

CH04 存储系统 习题与思考题 1.存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信息?哪一部分用来存储经常改变的数据? 解答:只读存储器ROM;随机存储器RAM。 2.术语“非易失性存储器”是什么意思?PROM和EPROM分别代表什么意思? 解答:“非易失性存储器”是指当停电后信息会丢失;PROM--可编程序的只读存储器PROM(Programmable ROM),EPROM--可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)。 3.微型计算机中常用的存储器有哪些?它们各有何特点?分别适用于哪些场合? 解答: 双极型半导体存储器 随机存储器(RAM) MOS存储器(静态、动态) 主存储器可编程只读存储器PROM 可擦除可编程只读存储器EPROM,EEPROM 只读存储器(ROM)掩膜型只读存储器MROM 快擦型存储器 存储器磁盘(软盘、硬盘、盘组)存储器 辅助存储器磁带存储器 光盘存储器 缓冲存储器 4.现代计算机中的存储器系统采用了哪三级分级结构,主要用于解决存储器中存在的哪些问题? 解答:目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而位成本则接近廉价慢速的辅存平均价格。三级结构主要用于解决速度、容量和成本的问题。 5.试比较静态RAM和动态RAM的优缺点,并说明有何种方法可解决掉电时动态RAM中信息的保护。 解答:静态RAM----存储一位信息的单元电路可以用双极型器件构成,也可用MOS器件构成。双极型器件构成的电路存取速度快,但工艺复杂,集成度低,功耗大,一般较少使用这种电路,而采用MOS器件构成的电路。静态RAM的单元电路通常是由6个MOS 管子组成的双稳态触发器电路,可以用来存储信息“0”或者“1”,只要不掉电,“0” 或“1”状态能一直保持,除非重新通过写操作写入新的数据。同样对存储器单元信息的读出过程也是非破坏性的,读出操作后,所保存的信息不变。使用静态RAM的优点是访问速度快,访问周期达20~40ns。静态RAM工作稳定,不需要进行刷新,外部电

微机原理习题集以及答案

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.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。 2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=120 0H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少? (1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H (2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H (4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H (5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H (6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H (8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H (9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H (10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H 3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有 效地址。 (1)直接寻址答:有效地址为EA=C237H (2)用BX的寄存器间接寻址答:有效地址为EA=637DH (3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H (4)基址加变址寻址答:有效地址为EA=8E18H (5)相对基址变址寻址答:有效地址为EA=1504FH 其中,(3)和(5)中产生进位,要把最高位1舍去。

微机原理习题解答第四章

第四章 1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DL=01H DH=10H (1000H)=10H (2000H)=01H 2.要求同题4.1,程序如下: MOV AL,50H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 解:寄存器及存储单元的内容如下: BL=00H BH=20H CL=00H CH=30H DL=20H DH=20H BP=1000H (1000H)=50H

(2000H)=20H 3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。 (1)不用数据块传送指令。 (2)用单个传送的数据块传送指令。 (3)用数据块成组传送指令。 解:(1)LEA SI,1000H LEA DI,2000H MOV CX,100 L1: MOV AX,[SI] MOV [DI],AX LOOP L1 HLT (2)LEA SI,1000H LEA DI,2000H MOV CX,100 CLD L1:MOVSB LOOP L1 HLT (3)LEA SI,1000H LEA DI,2000H MOV CX,100 CLD REP MOVSB HLT 6.编写一个程序,把自1000H单元开始的100个数传送至1050H开始的存储区中(注意:数据区有重叠)。 解:LEA SI,1000H LEA DI,1050H ADD SI,63H ADD DI,63H MOV CX,100 STD REP MOVSB HLT 7.自0500H单元开始,存放着100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零时就停止传送。 解:LEA SI,0500H LEA DI,1000H MOV CX,100

微机原理习题集以及答案

第一部分 例题与习题 第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 )。

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