文档库 最新最全的文档下载
当前位置:文档库 › 微型计算机原理与接口技术第四章课后答案

微型计算机原理与接口技术第四章课后答案

微型计算机原理与接口技术第四章课后答案
微型计算机原理与接口技术第四章课后答案

第四章

1. 下列变量各占多少字节?

A1 DW 23H,5876H

A2 DB 3 DUP(?),0AH,0DH, ‘$’

A3 DD 5 DUP(1234H, 567890H)

A4 DB 4 DUP(3 DUP(1, 2,’ABC’))

答:A1占4个字节

A2占6个字节

A3占40个字节

A4占60个字节

2. 下列指令完成什么功能?

MOV AX,00FFH AND 1122H+3344H

MOV AL,15 GE 1111B

MOV AX,00FFH LE 255+6/5

AND AL, 50 MOD 4

OR AX, 0F00FH AND 1234 OR 00FFH

答:(1)将0066H传送给AX

(2)将0FFH传送给AL

(3)将0FFFFH传送给AX

(4)AND AL,02H

(5)OR AX,00FFH

3. 有符号定义语句如下:

BUF DB 3,4,5,’123’

ABUF DB 0

L EQU ABUF-BUF

求L的值为多少?

答:L=6

4. 假设程序中的数据定义如下:

PAR DW ?

PNAME DB 16 DUP(?)

COUNT DD ?

PLENTH EQU $-PAR

求PLENTH的值为多少?表示什么意义?

答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。

若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。

5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?

DA1 DB ?

DA2 DW 10 DUP(?)

DA3 DB ‘ABCD’

MOV AX, TYPE DA1

MOV BX, SIZE DA2

MOV CX, LENGTH DA3

答:AX=1,BX=20,CX=1

6. 下段程序完成后,AH等于什么?

IN AL, 5FH

TEST AL, 80H

JZ L1

MOV AH, 0

JMP STOP

L1: MOV AH, 0FFH

STOP: HLT

答:讨论从端口5FH输入的数据最高位的情况。若最高位为1,则AH=0;若最高位为0,则AH=0FFH。

7. 编程序完成下列功能:

(1)利用中断调用产生5秒延时。

(2)利用中断调用,在屏幕上显示1~9之间随机数。

答:(1)可以利用中断类型1CH来处理,因为在系统时钟的中断处理程序中,时钟中断一次要调用一次INT 1CH,即每隔55ms,产生一次1CH中断,要产生5秒延时,只要中断5s/55ms=91次即可。又因1CH中断处理程序中只有一条IRET指令,故可将用户的程序代替原有的INT 1CH程序。

DATA SEGMENT

COUNT DW 91 ;计数器

MESS DB ‘5 s delayed!’,0AH,0DH,’$’

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

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

START: PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV AL,1CH ;得到原中断向量

MOV AH,35H

INT 21H

PUSH ES ;存储原中断向量

PUSH BX

PUSH DS

MOV DX,OFFSET DELAY ;DELAY的偏移地址和段地址

MOV AX,SEG DELAY

MOV DS,AX

MOV AL,1CH ;设置中断向量

MOV AH,25H

INT 21H

POP DS

IN AL,21H ;设置中断屏蔽位

AND AL,0FEH

OUT 21H,AL

STI

MOV DI,2000H ;主程序延迟,在执行此段程序期间A1: MOV SI,3000H ;产生中断

A2: DEC SI

JNZ A2

DEC DI

JNZ A1

POP DX ;取原中断向量

POP DS

MOV AL,1CH

MOV AH,25H

INT 21H

RET

MAIN ENDP

DELAY PROC NEAR

PUSH DS

PUSH AX

PUSH CX

PUSH DX

MOV AX,DATA

MOV DS,AX

STI

DEC COUNT ;5秒计数

JNZ EXIT

MOV DX,OFFSET MESS ;显示信息

MOV AH,09H

INT 21H

MOV COUNT,91 ;5秒的值

EXIT: CLI

POP DX

POP CX

POP AX

POP DS

IRET

DELAY ENDP

CODE ENDS

END START

(2)可以利用INT 1AH,读取当前时间的1/100秒为随机数。

CODE SEGMENT

ASSUME CS:CODE

START:MOV AH,0

INT 1AH ;读取当前时间CH:CL=时:分

MOV AL,DL ;DH:DL=秒:1/100秒

MOV AH,0

MOV BL,9

DIV BL

INC AH

MOV DL,AH

ADD DL,30H

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

8. 编两个通过过程完成将AX中存放的二进制数转换成压缩型BCD码以及将BCD码转换成二进制数。

答:(1)将AX中的二进制数先后除以1000,100和10,每次除法所得的商,即是BCD数的千位、百位和十位数,余数是个位数。

子程序名:B2TOBCD

输入参数:AX=十六位二进制数

输出参数:CF=0,则AX=4位压缩型BCD码。CF=1,则要转换的数大于9999,AX不变。

使用寄存器:CX:存放除数,DX:存放中间结果。

B2TOBCD PROC FAR

CMP AX,9999 ;AX>9999,则CF置1

JBE TRAN

STC

JMP EXIT

TRAN: PUSH CX

PUSH DX

SUB DX,DX ;DX清0

MOV CX,1000 ;计算千位数

DIV CX

XCHG AX,DX ;商在DX中,余数在AX中

MOV CL,4

SHL DX,CL ;DX左移4位

MOV CL,100 ;计算百位数

DIV CL

ADD DL,AL ;百位数加到DL中,DX左移4位

MOV CL,4

SHL DX,CL

XCHG AL,AH ;余数保留在AL中

SUB AH,AH

MOV CL,10 ;计算十位数

DIV CL

ADD DL,AL ;十位数加到DL中,DX左移4位MOV CL,4

SHL DX,CL

ADD DL,AH ;加个位数

MOV AX,DX ;结果送到AX中

POP DX

POP CX

EXIT: RET

B2TOBCD ENDP

(2)将AX中4位BCD码顺序乘以1000,100,10和1,然后求和即得。

子程序名:BCDTOB2

输入参数:AX=4位压缩BCD码

输出参数:AX=十六位二进制数

使用寄存器:BX:暂存数据,CX:存放乘数,DX:存放中间结果

BCDTOB2 PROC FAR

PUSH BX

PUSH CX

PUSH DX

MOV BX,AX

MOV CL,4

ROL AX,CL

AND AX,000FH

MOV CX,1000 ;乘以1000

MUL CX

MOV DX,AX

MOV AX,BX

MOV CL,8

ROL AX,CL

AND AX,000FH

MOV CL,100 ;乘以100

MUL CL

ADD DX,AX

MOV AX,BX

MOV CL,4

SHR AX,CL

AND AX,000FH

MOV CL,10 ;乘以10

MUL CL

ADD DX,AX

AND BX,000FH

ADD DX,BX

MOV AX,DX

POP DX

POP CX

POP BX

RET

BCDTOB2 ENDP

9. 编写两个通用过程,一个完成ASCII码转换成二进制数功能,另一个完成ASCII字符显示输出功能。

答:(1)将AX中两位ASCII码先转化成数字,然后AH*10+AL。

子程序名:ASCIITOB2

输入参数:AX=2位ASCII码

输出参数:AX=转换后二进制数

使用寄存器:BX,CX,DX

ASCIITOB2 PROC FAR

PUSH BX

PUSH CX

PUSH DX

MOV BX,AX

SUB AH,30H

MOV AL,AH

MOV CL,10 ;乘以10

MUL CL

MOV DX,AX

MOV AX,BX

SUB AL,30H

MOV AH,0

ADD AX,DX

POP DX

POP CX

POP BX

RET

ASCIITOB2 ENDP

(2)使用2号DOS功能调用显示字符。

子程序名:DISPLAY

输入参数:AX=2位ASCII码

输出参数:无

使用寄存器:BX,DX

DISPLAY PROC FAR

PUSH BX

PUSH DX

MOV BX,AX

MOV DL,AH

MOV AH,2

INT 21H

MOV AX,BX

MOV DL,AL

MOV AH,2

INT 21H

POP DX

POP BX

RET

DISPLAY ENDP

10. 编制两个通用过程,完成十六进制数转换成ASCII码并将ASCII码字符显示。答:(1)子程序名:HEXTOASC

输入参数:AX:4位十六进制数

输出参数:DX,AX:4位ASCII码,DX高2位,AX低2位

使用寄存器:BX,CX,DX

HEXTOASC PROC FAR

PUSH BX

PUSH CX

PUSH DX

MOV BX,AX

MOV CL,4 ;转换AH高4位

SHR AX,CL

AND AX,0F00H

ADD AH,30H

CMP AH,3AH

JB A1

ADD AH,7

A1: MOV DH,AH

MOV AX,BX ;转换AH低4位

AND AX,0F00H

ADD AH,30H

CMP AH,3AH

JB A2

ADD AH,7

A2: MOV DL,AH

MOV BH,BL ;转换AL高4位

MOV CL,4

SHR BL,CL

ADD BL,30H

CMP BL,3AH

JB A3

ADD BL,7

A3: MOV AH,BL

AND BH,0FH ;转换AL低4位

ADD BH,30H

CMP BH,3AH

JB A4

ADD BH,7

A4: MOV AL,BH

POP DX

POP CX

POP BX

RET

HEXTOASC ENDP

(2)子程序名:DISPLAYASC

输入参数:DX,AX:4位ASCII码

输出参数:无

使用寄存器:BX,CX

DISPLAYASC PROC FAR

PUSH BX

PUSH CX

MOV BX,DX

MOV CX,AX

MOV DL,BH

MOV AH,02H

INT 21H

MOV DL,BL

INT 21H

MOV DL,CH

INT 21H

MOV DL,CL

INT 21H

MOV DL,’H’

INT 21H

POP CX

POP BX

RET

DISPLAYASC ENDP

11. 某程序可从键盘接收命令(0~5),分别转向6个子程序,子程序入口地址分别为P0~P5,编制程序,用跳转表实现分支结构。

答:DATA SEGMENT

TABLE DW 6 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA SI, TABLE

MOV WORD PTR[SI],OFFSET P0

MOV WORD PTR[SI+2],OFFSET P1

MOV WORD PTR[SI+4],OFFSET P2

MOV WORD PTR[SI+6],OFFSET P3

MOV WORD PTR[SI+8],OFFSET P4

MOV WORD PTR[SI+10],OFFSET P5

MOV AH,1

INT 21H

SUB AL,30H

SHL AL,1

MOV AH,0

MOV SI,AX

JMP TABLE[SI]

P0:

P1:

P2:

P3:

P4:

P5:

MOV AH,4CH

INT 21H

CODE ENDS

END START

12. 在首地址为TABLE的数组中按递增次序存放着100个16位补码数,编写一个程序,把出现次数最多的数及其出现次数分别存放于AX和BL中。

答:DATA SEGMENT

TABLE DW 100 DUP (?) ;数组中的数据是按增序排列的

NUM DW ?

COUNT DW 0

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS: CODE, DS: DATA

START: PUSH DS ;设置返回DOS

SUB AX, AX

PUSH AX

MOV AX, DATA

MOV DS, AX ;给DS赋值

BEGIN: MOV CX, 100 ;循环计数器

MOV SI, 0

NEXT: MOV DX, 0

MOV AX, TABLE[SI]

COMP: CMP TABLE [SI], AX ;计算一个数的出现次数

JNE ADDR

INC DX

ADD SI, 2

LOOP COMP

ADDR: CMP DX, COUNT ;此数出现的次数最多吗?

JLE DONE

MOV COUNT, DX ;目前此数出现的次数最多,记下次数

MOV NUM, AX ;记下此数

DONE: LOOP NEXT ;准备取下一个数

MOV CX, COUNT ;出现最多的次数存入(CX)

MOV AX, NUM ;出现最多的数存入(AX)

RET

MAIN ENDP

CODE ENDS ;以上定义代码段

END START

13. 将键盘上输入的十六进制数转换成十进制数,在屏幕上显示。

答:DATA SEGMENT

STRING DB 'INPUT 4 HEX NUM:',0AH,0DH,'$'

NUM DB 10 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA DX,STRING ;显示提示信息

MOV AH,9

INT 21H

MOV BP,4

MOV DX,0

CONT: MOV CL,4 ;输入4位十六进制数?DX

SHL DX,CL

D1: MOV AH,1

INT 21H

CMP AL,'0'

JB D1

CMP AL,'F'

JA D1

CMP AL,'A'

JB A1

SUB AL,7

A1: SUB AL,30H

MOV AH,0

ADD DX,AX

DEC BP

JNZ CONT

MOV SI,0 ;将DX转换成十进制数,再转换成ASCII码—>NUM MOV AX,DX

MOV DX,0

MOV BX,10

D2: DIV BX

ADD DL,30H

MOV NUM[SI],DL

INC SI

CMP AX,0

JZ EXIT

MOV DX,0

JMP D2

EXIT: MOV DL,0AH ;显示十进制数

MOV AH,2

INT 21H

MOV DL,0DH

INT 21H

D3: DEC SI

MOV DL,NUM[SI]

MOV AH,2

INT 21H

JNZ D3

MOV AH,4CH

INT 21H

CODE ENDS

END START

14. 将AX中的无符号二进制数转换成ASCII字符串表示的十进制数。

答:将13题输入过程和输出过程去掉即得。

DATA SEGMENT

NUM DB 10 DUP(?) ;转换后ASCII码按倒序存放于NUM

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AX, ×××× ;无符号二进制数

MOV SI,0 ;将AX转换成十进制数,再转换成ASCII码—>NUM MOV DX,0

MOV BX,10

D2: DIV BX

ADD DL,30H

MOV NUM[SI],DL

INC SI

CMP AX,0

JZ EXIT

MOV DX,0

JMP D2

EXIT: MOV AH,4CH

INT 21H

CODE ENDS

END START

15. 从键盘输入20个有符号数,将它们排序并在屏幕上显示。

答:DATA SEGMENT

NUM DW 20 DUP(?) ;存放20个有符号数

ASC DB 10 DUP(?) ;输出时暂时保存每一个数的ASCII码DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV CX,20

MOV BX,10

MOV SI,0

MOV BP,0

BEGIN: MOV DX,0 ;输入20个有符号数(十进制),并

A1: MOV AH,1 ;转化为二进制数存放于NUM数组INT 21H

CMP AL,' ' ;判断是否空格

JZ A2

CMP AL,0DH ;是否回车符

JZ A2

CMP AL,'-' ;是否‘-’

JZ A3

JMP A4

A3: MOV BP,1

JMP A1

A4: PUSH AX

MOV AX,DX

MUL BX

MOV DX,AX

POP AX

SUB AL,30H

MOV AH,0

ADD DX,AX

JMP A1

A2: CMP BP,1

JNZ A5

NEG DX ;若为负数,则取负

A5: MOV NUM[SI],DX

MOV BP,0

ADD SI,2

LOOP BEGIN

MOV DL,0DH ;回车换行

MOV AH,2

INT 21H

MOV DL,0AH

INT 21H

MOV BX,0 ;对20个有符号数按由小到大顺序排序

MOV CX,19 ;采用冒泡法,排序后依然存放于NUM数组L1: MOV DX,CX

L2: MOV AX,NUM[BX]

CMP AX,NUM[BX+2]

JLE CONT1

XCHG AX,NUM[BX+2]

MOV NUM[BX],AX

CONT1: ADD BX,2

LOOP L2

MOV CX,DX

MOV BX,0

LOOP L1

MOV CX,20 ;将20个有符号数(二进制)转换为十进制数

MOV SI,0 ;再转换为ASCII码并输出屏幕

D1: MOV AX,NUM[SI]

ADD SI,2

TEST AX,1000H

JZ D4

PUSH AX

MOV DL,'-'

MOV AH,2

INT 21H

POP AX

NEG AX

D4: MOV DI,0

MOV DX,0

MOV BX,10

D2: DIV BX

ADD DL,30H

MOV ASC[DI],DL

INC DI

CMP AX,0

JZ D3

MOV DX,0

D3: MOV DL,ASC[DI-1]

MOV AH,2

INT 21H

DEC DI

JNZ D3

MOV DL,' '

MOV AH,2

INT 21H

LOOP D1

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END START

16. 编写多字节有符号数的加法程序,从键盘接收两个加数,在屏幕上显示结果。答:DATA SEGMENT

STRING1 DB 'INPUT FIRST NUM(HEX):',0DH,0AH,'$'

STRING2 DB 'INPUT SECOND NUM(HEX):',0DH,0AH,'$'

STRING3 DB 'THE RESULT IS(HEX):',0DH,0AH,'$'

NUM1 DW 0,0 ;存放加数1

NUM2 DW 0,0 ;存放加数2

RESULT DB 0,0,0,0 ;存放结果

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LEA DX,STRING1 ;输入第一个加数(4位十六进制数)

MOV AH,9

INT 21H

MOV SI,2

MOV CX,8

CONT: PUSH CX

CMP CX,4

JNZ B1

SUB SI,2

B1: MOV CL,4

SHL NUM1[SI],CL

C1: MOV AH,1

INT 21H

CMP AL,'0'

JB C1

CMP AL,'F'

CMP AL,'A'

JB A1

SUB AL,7

A1: SUB AL,30H

MOV AH,0

ADD NUM1[SI],AX

POP CX

LOOP CONT

MOV DL,0DH ;回车换行

MOV AH,2

INT 21H

MOV DL,0AH

INT 21H

LEA DX,STRING2 ;输入第二个加数(4位十六进制数)

MOV AH,9

INT 21H

MOV SI,2

MOV CX,8

CONT1: PUSH CX

CMP CX,4

JNZ B2

SUB SI,2

B2: MOV CL,4

SHL NUM2[SI],CL

C2: MOV AH,1

INT 21H

CMP AL,'0'

JB C2

CMP AL,'F'

JA C2

CMP AL,'A'

JB A2

SUB AL,7

A2: SUB AL,30H

MOV AH,0

ADD NUM2[SI],AX

POP CX

LOOP CONT1

MOV DL,0DH ;回车换行

MOV AH,2

INT 21H

MOV DL,0AH

INT 21H

LEA SI,NUM1 ;两数相加

LEA BX,NUM2

LEA DI,RESULT

MOV CX,4

CLC

AD: MOV AL,[SI]

ADC AL,[BX]

MOV [DI],AL

INC SI

INC BX

INC DI

LOOP AD

LEA DX,STRING3 ;显示结果(4位十六进制数)

MOV AH,9

INT 21H

MOV CX,4

MOV DI,3

TT: PUSH CX

MOV DL,RESULT[DI]

MOV CL,4

SHR DL,CL

ADD DL,30H

CMP DL,3AH

JB D1

ADD DL,7

D1: MOV AH,2

INT 21H

MOV DL,RESULT[DI]

AND DL,0FH

ADD DL,30H

CMP DL,3AH

JB D2

ADD DL,7

D2: MOV AH,2

INT 21H

DEC DI

POP CX

LOOP TT

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END START

17. 编写2位非压缩型BCD码相乘的程序。答:转化成加法进行累加运算。

DATA SEGMENT

DA1 DB 09H,09H

DA2 DB 09H,08H

RESULT DB 4 DUP(0)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,DA2+1 ;计算加法次数

MOV BL,10

MUL BL

MOV BL,DA2

MOV BH,0

ADD AX,BX

MOV CX,AX

CONT: MOV AH,0 ;通过循环做累加MOV AL,RESULT

ADD AL,DA1

AAA

MOV RESULT,AL

MOV AL,RESULT+1

ADD AL,AH

MOV AH,0

AAA

ADD AL,DA1+1

AAA

MOV RESULT+1,AL

MOV AL,RESULT+2

ADD AL,AH

MOV AH,0

AAA

MOV RESULT+2,AL

MOV AL,RESULT+3

ADD AL,AH

MOV AH,0

AAA

MOV RESULT+3,AL

LOOP CONT

MOV AH,4CH ;返回DOS

INT 21H

CODE ENDS

END START

18. 编写完整的程序求N!,求N大于6时的运算结果,并在屏幕上显示结果。答:DATA SEGMENT

N DB 8 ;求8的阶乘

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,N

MOV AH,0

CALL FACT ;调用过程求N!,AX=N,BX=N!

CALL B2TODEC ;调用过程将结果转换为十进制,然后屏幕显示

MOV AH,4CH

INT 21H

FACT PROC

CMP AL,0

JNZ CHN

MOV BX,1

RET

CHN: PUSH AX

DEC AL

CALL FACT ;递归调用N!=N*(N-1)!

POP AX

MUL BX

MOV BX,AX

RET

FACT ENDP

B2TODEC PROC

MOV CX,10000

CALL BIN

MOV CX,1000

CALL BIN

MOV CX,100

CALL BIN

MOV CX,10

CALL BIN

MOV CX,1

CALL BIN

RET

B2TODEC ENDP

BIN PROC

MOV AX,BX

MOV DX,0

DIV CX

MOV BX,DX

MOV DL,AL

ADD DL,30H

MOV AH,2

INT 21H

RET

BIN ENDP

CODE ENDS

END START

19. 在附加段有一个数组,首地址为BUFF,数组中第一个字节存放了数组的长度。编一个程序在数组中查找0,找到后把它从数组中删去,后续项向前压缩,其余部分补0。

答:DATA SEGMENT

BUFF DB 10, 1,0,2,3,4,0,5,6,7,0 ;10个数

M EQU 0

DATA ENDS

CODE SEGMENT

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

START: MOV AX, DATA ; 初始化ES,DS

MOV ES, AX

MOV DS, AX

MOV AL, M ; 关键字M存入AL

MOV DI, OFFSET BUFF

MOV CL, [DI] ; 数组长度存入CX

MOV CH, 0

INC DI ;指向数组起始地址

CLD ;清方向标志

L1: REPNE SCASB ;重复搜索关键字

JNZ STOP ; 未找到,转STOP结束

JCXZ STOP ; 最后一个数是M,转STOP

PUSH DI ;关键字下一单元地址和循

PUSH CX ;环次数入栈保护

DEL: MOV BL, [DI] ; 前移,末尾补0

MOV [DI-1], BL

INC DI

LOOP DEL

MOV BYTE PTR[DI-1], 0

POP CX ; 恢复CX,DI

POP DI

DEC DI ; 由于REPNE SCASB已自动加1

JMP L1

STOP: MOV AH, 4CH

INT 21H

CODE ENDS

END START

20. 编程完成将第二个字符串插入到第一个字符串的指定位置上。

答:DATA SEGMENT

STRING1 DB 'THIS IS THE FIRST STRING!','$'

DB 100 DUP(0) ;缓冲区

NUM1 DW ? ;字符串1的长度

STRING2 DB 'the second string!','$'

NUM2 DW ? ;字符串2的长度

POS DW 8 ;插入位置

DATA ENDS

CODE SEGMENT

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

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA DI,STRING1 ;求字符串1的长度存入NUM1

MOV AL,'$'

MOV NUM1,0

CLD

D1: SCASB

JZ D2

INC NUM1

JMP D1

D2: LEA DI,STRING2 ;求字符串2的长度存入NUM2

MOV AL,'$'

MOV NUM2,0

CLD

D3: SCASB

JZ D4

INC NUM2

JMP D3

D4: LEA SI,STRING1 ;将字符串1自插入位置开始的字符向后移动, ADD SI,NUM1 ;空出位置以便插入字符串2

MOV DI,SI

ADD DI,NUM2

STD

MOV CX,NUM1

SUB CX,POS

INC CX

REP MOVSB

LEA SI,STRING2 ;将字符串2插入到字符串1指定位置

微机原理考试课后练习题筛选

第一章 一、选择题 7.(D)8.(B)9.(D)10.(C)11.(A) 二、填空题 l.(运算器)2.(冯·诺依曼、输出器、存储器、存储器)9.(尾数、指数) 第二章 一、选择题 1.(C)4.(B)5.(D)7.(A)8.(D)18.(B) 二、填空题 4.(TF、DF、IF) 5. (9E100H)10.(0、0、 1、1)15.(FFFFH、0000H、0000H、0000H) 三、问答题 2.完成下列补码运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出? (1)00101101B+10011100B (2) 01011101B-10111010B (3)876AH-0F32BH (4)10000000B十 11111111B (1)00101101B +10011100B 11001001B=C9H SF=1 ZF=0 CF=0 OF=0 (2) -10111010B=01000110B 01011101B-10111010B=01011101B +01000110B 10100011B SF=1 ZF=0 CF=0 OF=1 (3)876AH-0F32BH=876AH +0CD5H 943FH SF=1 ZF=0 CF=0 OF=0 (4) 10000000B +11111111B 101111111B=7FH SF=0 ZF=0 CF=1 OF=1 习题3 一、选择题 1.D 4.B 5.A 14.D 17.C 二、填空题 7. 3400H;5000H 8. 9AH;6CH;0;1;1;1;0 17.低8位;高8位;0FFA4H 三,问答题 1、(1)源操作数是基址寻址,目的操作数是寄存器寻址(2)逻辑地址是0705H,物理地址是10705H (3)(AX)=1234H (BX)=0700H 10、(1)MOV SI,2500H MOV DI,1400H MOV CX,64H CLD REP MOVSB (2) MOV SI,2500H MOV DI,1400H MOV CX,64H CLD REPE CMPSB JNZ L1 XOR BX,BX HLT L1:DEC SI MOV BX,SI MOV AL,[SI] HLT 习题4 一、选择题 1.B 4.C 二、填空题 1..ASM;.OBJ;.EXE 6.( AX)= 1 (BX)= 2 (CX)= 20 (DX)= 40

(完整版)微机原理课后习题参考答案

第一章 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工作电压、制造工艺、扩展能力、软件配置。 第二章 2、8086标志寄存器包含哪些标志位?试说明各标志位的作用。 答:进位标志:CF;奇偶校验:PF;辅助进位:AF;零标志:ZF;符号标志:SF;溢出标志:OF。 5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址? 答:物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为段基址:偏移地址。 物理地址=段基址*10H+偏移地址。 6、写出下列逻辑地址的段基址、偏移地址和物理地址。 (1)2314H:0035H (2)1FD0H:000AH 答:(1)段基址:2314H;偏移地址:0035H;物理地址:23175H。 (2)段基址:1FD0H;偏移地址:000AH;物理地址:1FD0AH。 8、设(CS)=2025H,(IP)=0100H,则当前将要执行指令的物理地址是多少? 答:物理地址=(CS)*10H+(IP)=20350H 9、设一个16字的数据区,它的起始地址为70A0H:DDF6H(段基址:偏移地址),求这个数据区的首字单元和末字单元的物理地址。

微机原理课后练习题-答案

1、 2、B 3、十,非压缩的BCD码 4、 5、微型计算机、微型计算机系统 6、,, 二、 B D B 三、 1、微型计算机系统的基本组成。 答案:以微型计算机为主体,配上相应的系统软件、应用软件和外部设备之后,组成微型计算机系统。 2、简述冯.诺依曼型计算机基本组成。 答案:冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。 3、什么是微型计算机 答案:微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4、什么是溢出 答案:在两个有符号数进行家减运算时,如果运算结果超出了该符号数可表示的范围,就会发生溢出,使计算出错。

1、4、100ns 2、Ready ,Tw(等待) 3、ALE 4、INTR 5、85010H 6、存储器或I/O接口未准备好 7、非屏蔽中断 8、指令周期 9、4 二、 1、在内部结构上,微处理器主要有那些功能部件组成 答案:1) 算术逻辑部件2) 累加器和通用寄存器组 3) 程序计数器4) 时序和控制部件 2、微处理器一般应具有那些基本功能 答案:1.可以进行算术和逻辑运算2.可保存少量数据 3.能对指令进行译码并完成规定的操作4.能和存储器、外部设备交换数据 5.提供整个系统所需的定时和控制6.可以响应其他部件发来的中断请求 3、什么是总线周期 答案:CPU通过外部总线对存储器或I/O端口进行一次读/写操作的过程;一个基本的总线周期包含4个T状态,分别称为T1、T2、T3、T4。 三、×、×、×、×、×、√、√

微机原理课后习题答案

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

(整理)微型计算机原理与接口技术

4.9练习题 10、写一个宏定义,要求能把任意一个寄存器的最低位移至另一个存储器的最高位中。 DATA SEGMENT VAR1 DB 4,6 VAR2 DD 200 DUP(?) DATA ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATA,SS:STACKS START: MOV AX,DATA MOV DS,AX XTY MACRO X,Y MOV AX,X AND AX,1 ROR AX,1 MOV Y,AX ENDM MOV DX,1 MOV AX,0 XTY DX,AX, MOV AH,4CH INT 21H CODES ENDS END START 11、利用DOS功能调用从键盘输入60个字符到缓冲区BUF中,在按下ENTER键后在屏幕上显示这些字符。请写出程序段。 DATA SEGMENT ST1 DB 'Please input 60 characters from keyboard.',0DH,0AH,'$' BUF DB 61 DUP(?) DATA ENDS COD SEGMENT ASSUME CS:COD,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DL,07H MOV AH,2 INT 21H MOV DX,OFFSET ST1 MOV AH,9 INT 21H LEA SI, BUF MOV CX,60 LP: MOV AH,7 INT 21H MOV [SI],AL CMP AL,0DH JZ EXIT INC SI LOOP LP EXIT: MOV BX,60 SUB BX,CX MOV CX,BX LEA SI, BUF LP2: MOV DL,[SI] MOV AH,6 INT 21H INC SI LOOP LP2 MOV AH,4CH INT 21H COD ENDS END START

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

第一章 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章微型计算机系统 〔习题〕简答题 (2)总线信号分成哪三组信号 (3)PC机主存采用DRAM组成还是SRAM组成 (5)ROM-BIOS是什么 (6)中断是什么 (9)处理器的“取指-译码-执行周期”是指什么 〔解答〕 ②总线信号分成三组,分别是数据总线、地址总线和控制总线。 ③ PC机主存采用DRAM组成。 ⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 ⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍

返回被中断的指令继续执行的过程。 ⑨指令的处理过程。处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 〔习题〕填空题 (2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。 (3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。 (9)最初由公司采用Intel 8088处理器和()操作系统推出PC机。 ② 1MB,4GB ③ 216,64KB (9)IBM,DOS 〔习题〕说明微型计算机系统的硬件组成及各部分作用。 〔解答〕

CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。 总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题〕区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。 〔解答〕 助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。 汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。 汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

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

6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原=B [-42]反=B [-42]补=B [+85]原=01010101B=[+85]反=[+85]补 [-85]原=B [-85]反=B [-85]补=B 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.2 课后练习题 一、填空题 1.将二进制数1011011.1转换为十六进制数为__5B.8H_____。 2.将十进制数199转换为二进制数为____ 11000111____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数36.875转换成二进制是___100100.111____________。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数98.45转换成二进制为__1100010.0111_B、八进制__142.3463________Q、十六进制__62.7333________H。(精确到小数点后4位) 二、选择题 1.堆栈的工作方式是__B_________。 A)先进先出B)后进先出C)随机读写D)只能读出不能写入 2.八位定点补码整数的范围是____D_________。 A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127 3.字长为16位的数可表示有符号数的范围是___B___。 A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768 三、简答题 1.微型计算机系统的基本组成? 微型计算机,系统软件,应用软件,输入输出设备 2.简述冯.诺依曼型计算机基本思想? ●将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 ●指令按其在存储器中存放的顺序执行; ●由控制器控制整个程序和数据的存取以及程序的执行; ●以运算器为核心,所有的执行都经过运算器。 3.什么是微型计算机? 微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4.什么是溢出? 运算结果超出了计算机所能表示的范围。 2.2 一、填空题 1. 8086/8088的基本总线周期由___4____个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为___0.1μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。

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

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、把下列二进制数转换成十进制数、十六进制数及BCD码形式。 (1) 10110010B= (2) 01011101、101B = 解: (1) 10110010B = 178D =B2H=(00010111 1000)BCD (2) 01011101、101B =93、625D=5D.AH =(1001 0011、0110 0010 0101)BCD 2. 把下列十进制数转换成二进制数。 (1) 100D= (2) 1000D= (3) 67、21D= 解: (1) 100D = 01100100B (2) 1000D=1111101000B (3) 67、21D=1000011、0011B 3. 把下列十六进制数转换成十进制数、二进制数。 (1) 2B5H = (2) 4CD、A5H= 解: (1) 2B5H = 693D = 00101011 0101B (2) 4CD、A5H=1229.6445D=0100 11001101.10100101B 4、计算下列各式。 (1) A7H+B8H = (2) E4H-A6H = 解: (1) A7H+B8H = 15FH (2) E4H-A6H =3EH 5、写出下列十进制数的原码、反码与补码。 (1)+89 (2)-37

解: (1) [+89 ] 原码、反码与补码为: 01011001B (2) [-37] 原码= 10100101 B [-37] 反码= 11011010 B [-37] 补码=11011011 B 6.求下列用二进制补码表示的十进制数 (1)(01001101)补= (2)(10110101)补= 解: (1)(01001101)补= 77D (2)(10110101)补=-75D 7.请用8位二进制数写出下列字符带奇校验的ASCII码。 (1)C: 1000011(2)O: 1001111 (3)M: 1001101 (4)P: 1010000 解: (1)C:0 1000011 (2)O: 01001111 (3)M:11001101 (4)P: 1 1010000 8、请用8位二进制数写出下列字符带偶校验的ASCII码。 (1)+:0101011 (2)=: 0111101 (3)#:0100011(4)>: 0111110 解: (1)+:00101011 (2)=: 10111101 (3)#:10100011 (4)>: 1 0111110 9、叙述CPU 中PC的作用。 解:PC就是CPU中的程序计数器,其作用就是提供要执行指令的地址。

微机原理王忠民版课后答案

部分习题答案 (3) 0.1101 1B= 0.84375 = 0.D8H (4) 11110.01 B= 30.25 =1E.4H 3、完成下列二进制数的加减法运算 (1) 1001.11 + 100.01 = 1110.0001110101.0110 (4) 01011101.0110 — 101101.1011 = 101111.1011 4、 完成下列十六进制数的加减法运算 (1) 745CH + 56DFH= D14B H (2) ABF.8H — EF6.AH = 9C28.E H (3) 12AB.F7 + 3CD.05= 1678 .FC H (4) 6F01H — EFD8H= 7F29 H 5、 计算下列表达式的值 103.CEH (3) 18.9 + 1010.1101B + 12.6H — 1011.1001 = 36.525 6、选取字长n 为8位和16位两种情况,求下列十进制数的补码。 (1) X=— 33的补码: ⑵ Y=+ 33的补码: 0010 0001 , 0000 0000 0010 0001 ⑶ Z=— 128 的补码:1000 0000 , 1111 1111 1000 0000 ⑷ N=+ 127的补码: 0111 1111 , 0000 0000 0111 1111 A=— 65的补码: 1011 1111 , 1111 1111 1011 1111 ⑹ B=+ 65的补码: 0100 0001 , 0000 0000 0100 0001 ⑺ C=— 96的补码: 1010 0000 , 1111 1111 1010 0000 (8) D=+ 96的补码: 0110 0000 , 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X 补=1000 0000 0000 0000 H X = — 1000 0000 0000 0000 H =— 32768 (2) [Y 补=0000 0001 0000 0001 H Y = + 0000 0001 0000 0001 H = + 257 (3) [Z 补=1111 1110 1010 0101 H Z= — 0000 0001 0101 1011 H =—347 (4) [A 补=0000 0010 0101 0111 H A= + 0000 0010 0101 0111 H =+ 599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43 + 8 [43]补=00101011B , [8]补=00001000B [43]补+ [8]补=00101011B + 00001000B = 00110011B = 33H 00101011B + 00001000B 00110011B T C s = 0, C D = 0, OF= C S ? C D = 0 ? 0= 0 ??? 无溢出 (1) 43 + 8 33H (无溢出) 第二章 1、 将十进制数转换为二进制和十六进制 (1) 129.75 = 1000 0001.11B = 81.CH (3) 15.625 = 1111.101B = F.AH 2、 将下列二进制数转换为十进制和十六进制 (1) 111010 B= 58 =3A H 计算机中的数值和编码 (2) 218.8125 = 1101 1010.1101B = DA.DH ⑷ 47.15625 = 10 1111.0010 1B = 2F.28 H (2) 1011 1100.111B= 188.875 = BC.E H (2) — 52 + 7 D3 H (无溢出)

微型计算机原理与接口技术_(张荣标_著)_机械工业出版社_课后答案

第一章 1.选择题 (1)C (2) D A (3) C 3填空 (1)CPU,微型计算机,系统软件,外围设备,微型计算机系统 (2)10,3,12 (3)阶数 (4)10010010B,01000100B,11010110B,FF4EH (5)3F7H,1C3H,243H,277H, 4简答题 (1)微处理器,微型计算机和微型计算机系统三者有何联系与区别? 微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。 微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。 以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。 (2)试述在计算机中常采用二进制的缘由? (3)简述如何从补码判断真值的符号? (4)BCD码与纯二进制数有何区别? 主要区别是二者对应的二进制位所表示的二进制真值不同, (5)试述机器数的定点和浮点数表示形式。 第2章 2填空题 (1)递增,A7,A5,A3,A1. (2)地址总线的宽度,00000H~0FFFFFH (3)寄存器,运算器,控制器;运算和控制 (4)SS,SP (5)MN/MX (6)主频,总线宽度 (7)20,16 3简答题 (1)什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。 (2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?(3)8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义? (4)8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。 (5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物

微机原理习题解答

第一章微型计算机的基础知识 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.掌握十六进制、二进制、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

微型计算机原理与接口技术课后答案资料

15. 已知:在内存BUF开始的单元中,存在一串数据:58,75,36,42,89。编程找出其中的最小值存入MIN单元中,并将这个数显示在屏幕上。 解: STACK SEGMENT STACK DB 100 DUP(?) STACK ENDS DATA SEGMENT BUF DB 58H, 75H, 36H, 42H, 89H MIN DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: PUSH DS MOV AX, DATA MOV DS, AX MOV CX, 4 MOV BX, OFFSET BUF MOV AL, [BX] ST1: INC BX CMP AL, [BX] JBE NEXT MOV AL, [BX] NEXT:LOOP ST1 MOV MIN, AL AND AL, 0F0H MOV CL,4 ROR AL, CL ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, MIN AND AL, 0FH ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H POP DS MOV AH, 4CH INT 21H HLT CODE ENDS

END START 18. 某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好,再求出总分和平均值,分别存放在SUM和AVER开始的单元中。 解: STACK ENDS DATA SEGMENT LIST DB 65H,76H,78H,54H,90H,85H,68H,66H,77H,88H DB 99H, 89H, 79H, 69H,75H,85H,63H,73H,83H,93H SUM DW 0 AVER DB 0 BUF DB 100 DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DS MOV AX,DATA MOV DS,AX MOV DI, OFFSET LIST MOV BX, 19 LP0: MOV SI, DI MOV CX, BX LP1: MOV AL, [SI] INC SI CMP AL, [SI] JNC LP2 MOV DL, [SI] MOV [SI-1], DL MOV [SI], AL LP2: LOOP LP1 DEC BX JNZ LP0 LP3: MOV CX, 20 MOV BX, OFFSET LIST MOV SUM, 0 XOR AX, AX LP4: ADD AL, [BX] DAA ADC AH, 0 INC BX LOOP LP4 MOV SUM, AX MOV BL, 20H DIV BL ADD AL,0

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