文档库 最新最全的文档下载
当前位置:文档库 › 微机答案

微机答案

微机答案
微机答案

第三章

1. 分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。

(1)MOV AX,2408H (2)MOV CL,0FFH (3)MOV BX,[SI]

(4)MOV 5[BX],BL (5)MOV [BP+100H],AX (6)MOV [BX+DI],’$’

(7)MOV DX,ES:[BX+SI] (8)MOV VAL[BP+DI],DX

(9)IN AL,05H (10)MOV DS,AX

答:(1)立即数,寄存器(2)立即数,寄存器(3)寄存器间接,寄存器

(4)寄存器,寄存器相对(5)寄存器,寄存器相对(6)立即数,基址变址

(7)基址变址,寄存器(8)寄存器,相对基址变址

(9)直接端口寻址,寄存器(10)寄存器,寄存器

2. 已知:DS=1000H,BX=0200H,SI=02H,内存10200H~10205H 单元的内容分别为10H,2AH,3CH,46H,59H,6BH。下列每条指令执行完后AX 寄存器的内容各是什么?

(1)MOV AX,0200H (2)MOV AX,[200H] (3)MOV AX,BX

(4)MOV AX,3[BX] (5)MOV AX,[BX+SI] (6)MOV AX,2[BX+SI]

答:(1)0200H (2)2A10H (3)0200H

(4)5946H (5)463CH (6)6B59H

3. 设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为VAL 的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什

么?物理地址值是多少?

(1)MOV AX,[100H] (2)MOV AX,VAL (3)MOV AX,[BX]

(4)MOV AX,ES:[BX] (5)MOV AX,[SI] (6)MOV AX,[BX+10H]

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

(9)MOV AX,VAL[BX][DI] (10)MOV AX,[BP][DI]

答:(1)直接,10100H (2)直接,10030H (3)寄存器间接,10100H

(4)寄存器间接,20100H (5)寄存器间接,100A0H (6)寄存器相对,10110H

(7)寄存器间接,35200H (8)相对基址变址,352D0H

(9)相对基址变址,10154H (10)基址变址,35224H

4. 写出下列指令的机器码

(1)MOV AL,CL (2)MOV DX,CX (3)MOV [BX+100H],3150H

答:(1)10001010 11000001B

(2)10001011 11010001B

(3)11000111 10000111 00000000 00000001 01010000 00110001B

5. 已知程序的数据段为:

DATA SEGMENT

A D

B ‘$’,10H

B DB ‘COMPUTER’

C DW 1234H, 0FFH

D DB 5 DUP(?)

E DD 1200459AH

DATA ENDS

求下列程序段执行后的结果是什么。

MOV AL, A

MOV DX, C

XCHG DL, A

MOV BX, OFFSET B

MOV CX, 3[BX]

LEA BX, D

LDS SI, E

LES DI, E

答:MOV AL, A AL=24H

MOV DX, C DX=1234H

XCHG DL, A DL=24H, A=34H

MOV BX, OFFSET B BX=2

MOV CX, 3[BX] CX=5550H

LEA BX, D BX=000EH

LDS SI, E DS=1200H, SI=459AH

LES DI, E ES=1200H, DI=459AH

6. 指出下列指令中哪些是错误的,错在什么地方。

(1)MOV DL,AX (2)MOV 8650H,AX (3)MOV DS,0200H

(4)MOV [BX],[1200H] (5)MOV IP,0FFH (6)MOV [BX+SI+3],IP

(7)MOV AX,[BX][BP] (8)MOV AL,ES:[BP] (9)MOV DL,[SI][DI]

(10)MOV AX,OFFSET 0A20H (11)MOV AL,OFFSET TABLE

(12)XCHG AL,50H (13)IN BL,05H (14)OUT AL,0FFEH

答:(1)长度不匹配(2)立即数不能做目的操作数

(3)段寄存器不能用立即数赋值(4)两个内存单元不能直接传送数据

(5)IP 不能用指令直接修改(6)指令中不能出现IP

(7)BX/BP 应与SI/DI 搭配(8)正确

(9)SI/DI 应与BX/BP 搭配(10)OFFSET 后应跟内存单元

(11)偏移地址为16 位,AL 长度不够(12)立即数不能用于XCHG

(13)IN 必须用AL/AX (14)操作数顺序反向;地址应为8 位

7. 已知当前数据段中有一个十进制数字0~9 的7 段代码表,其数值依次为40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。要求用XLAT 指令将十进制数57 转换成相应的

7 段代码值,存到BX 寄存器中,试写出相应的程序段。

答:DATA SEGMENT

TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H

DATA ENDS

……

MOV AL,5

MOV BX,OFFSET TABLE

XLAT TABLE

MOV CL,AL

MOV AL,7

XLAT TABLE

MOV BL,AL

MOV BH,CL

8. 已知当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行下列指

令过程中,堆栈中的内容和堆栈指针SP 是怎样变化的。

PUSH AX

PUSH BX

POP BX

POP AX

(1)指9. 下列指令完成什么功能?

(1)ADD AL,DH (2)ADC BX,CX (3)SUB AX,2710H

(4)DEC BX (5)NEG CX (6)INC BL

(7)MUL BX (8)DIV CL

答:(1)AL+DH→AL (2)BX+CX+CF→BX (3)AX-2710H→AX

(__________4)BX-1→BX (5)0-CX→CX (6)BL+1→BL

(7)AX*BX→DX,AX (8)AX/CL 商→AL,余数→AH

10. 已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果

是什么?标志位CF 等于什么?

(1)AND AH,CL (2)OR BL,30H (3)NOT AX

(4)XOR CX,0FFF0H (5)TEST DH,0FH (6)CMP CX,00H

(7)SHR DX,CL (8)SAR AL,1 (9)SHL BH,CL

(10)SAL AX,1 (11)RCL BX,1 (12)ROR DX,CL

答:(1)AX=0408H,CF=0 (2)BX=0F36H,CF=0

(3)AX=0DAF7H,CF 不变(4)CX=0FFF4H,CF=0

(5)DX=01864H,CF=0 (6)CX=0004H,CF=0

(7)DX=0186H,CF=0 (8)AX=2504H,CF=0

(9)BX=0F036H,CF=0 (10)AX=4A10H,CF=0

(11)BX=1E6C/1E6DH,CF=0 (12)DX=4186H,CF=0

11. 假设数据段定义如下:

DATA SEGMENT

STRING DB ‘The Personal Computer & TV’

DATA ENDS

试用字符串操作等指令编程完成以下功能:

(1)把该字符串传送到附加段中偏移量为GET_CHAR 开始的内存单元中。

(2)比较该字符串是否与’The Computer’相同,若相同则将AL 寄存器的内容置1,否则置0。并要求将比较次数送到BL 寄存器中。

(3)检查该字符串是否有’&’,若有则用空格字符将其替换。

(4)把字符串大写字母传送到附加段中以CAPS 开始的单元中,其余字符传到以CHART 开始的单元中。然后将数据段中存储上述字符串的单元清0。

答:(1)CLD

LEA SI,STRING

LEA DI,GET_CHAR

MOV CX,26

REP MOVSB

(2)补充在附加段定义

STRING1 DB ‘The computer’

MOV AL,1

CLD

LEA SI,STRING

LEA DI,STRING1

MOV CX,12

REPZ CMPSB

JZ SKIP

MOV AL,0

SKIP: MOV BX,12

SUB BX,CX

(3)MOV AX, DATA

MOV ES, AX

CLD

MOV AL,'&'

LEA DI,STRING

MOV CX,26

NEXT: REPNE SCASB

JZ FIND

JMP EXIT

FIND: MOV BYTE PTR [DI-1], ' '

JCXZ EXIT

JMP NEXT

EXIT:

(4)LEA SI,STRING

LEA DI,CAPS

LEA BX,CHART

MOV CX,26

NEXT: MOV AL, [SI]

CMP AL,’A’

JB OTHER

CMP AL,’Z’

JA OTHER

MOV ES:[DI],AL

INC DI

JMP SKIP

OTHER: MOV ES:[BX],AL

INC BX

SKIP: MOV BYTE PTR[SI],0

INC SI

LOOP NEXT

12. 编程将AX 寄存器中的内容以相反的顺序传送到DX 寄存器中,并要求AX 中的内容不

被破坏,然后统计DX 寄存器中‘1’的个数是多少。

答::MOV BL,0

PUSH AX

MOV DX,0

MOV CX,16

NEXT: SHL AX,1

JNC SKIP

INC BL

SKIP: RCR DX,1

LOOP NEXT

STOP: POP AX

13. 设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N 标号的地址为1200:0278H,PROG_F 标号的地址为3400H:0ABCH。说明下列每条指令执行完后,程序将分别

转移到何处执行?

(1)JMP PROG_N

(2)JMP BX

(3)JMP [BX]

(4)JMP FAR PROG_F

(5)JMP DWORD PTR [BX]

如将上述指令中的操作码JMP 改成CALL,则每条指令执行完后,程序转向何处执行?并

请画图说明堆栈中的内容和堆栈指针如何变化。

答:(1)1200H:0278H

(2)1200H:0300H

(3)1200H:4800H

(4)3400H:0ABCH

(5)00FFH:4800H

将操作码JMP 改成CALL 后:

(1)1200H:0278H

指令长度为3,则IP=0100H+3=0103H,入栈

(5)00FFH:4800H

指令长度为2,则IP=0100H+2=0102H,入栈

14. 在下列程序段括号中分别填入以下指令

(1)LOOP NEXT (2)LOOPE NEXT (3)LOOPNE NEXT

试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX 的内容分别是什么。START: MOV AX,01H

MOV BX,02H

MOV DX,03H

MOV CX,04H

NEXT: INC AX

ADD BX,AX

SHR DX,1

( )

答:(1)AX=05H BX=10H CX=0 DX=0

(2)AX=02H BX=04H CX=03H DX=01H

(3)AX=03H BX=07H CX=02H DX=0

15. 某班有7 个同学英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作:(1)给每人加 5 分,结果存到NEW 数组中

(2)把总分存到SUM 单元中

答:DATA SEGMENT

ARRAY DB ?,?,?,?,?,?,?

NEW DB 7 DUP(?)

SUM DW 0

DATA ENDS

MOV AX,DATA

MOV DS, AX

(1)LEA SI,ARRAY

LEA DI,NEW

MOV CX,7

NEXT: MOV AL,[SI]

ADD AL, 5

MOV [DI], AL

INC SI

INC DI

LOOP NEXT

(2)LEA SI,ARRAY

CLC

SP

5000H:0000H

5000H:03FCH

5000H:03FEH

5000H:0400H

MOV CX, 7

NEXT1:MOV AL,[SI]

MOV AH, 0

ADC SUM, AX

INC SI

LOOP NEXT1

16. 中断向量表的作用是什么?它放在内存的什么区域内?中断向量表中的什么地址用于

类型3 的中断?

答:中断向量表用来存放中断服务程序的入口地址。8086 的256 类中断的入口地址要占用

1K 字节,位于内存00000H~003FFH 的区域内。中断向量表中0000CH~0000FH 用于类型3 的中断。

17. 设类型2 的中断服务程序的起始地址为0485:0016H,它在中断向量表中如何存放?答:物理地址内容

00008H 16H

00009H 00H

0000AH 85H

0000BH 04H

18. 若中断向量表中地址为0040H 中存放240BH,0042H 单元里存放的是D169H,试问:(1)这些单元对应的中断类型是什么?

(2)该中断服务程序的起始地址是什么?

答:(1)10H

(2)D169H:240BH

19. 简要说明8086 响应类型0~4 中断的条件是什么?

答:类型0:除法错中断

执行除法指令时,若除数为0 或所得商超过寄存器能容纳的范围,则自动产生类型0

中断。

类型1:单步中断

若CPU 的单步标志TF=1,则每执行完一条指令后,自动产生类型1 中断。

类型2:不可屏蔽中断NMI

当8086 的NMI 引脚上接收到由低变高的电平变化时,将自动产生类型2 中断。类型3:断点中断

若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3 中断。

类型4:溢出中断

若溢出标志OF=1,则可由溢出中断指令INTO 产生类型4 中断。

第四章

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

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

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 题输入过程和输出过程去掉即得。

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

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

JMP D2

D3: MOV DL,ASC[DI-1]

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'

JA C1

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

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

微机原理的答案

第二章8086/808816位微处理器习题解答 1.试说明8086/8088CPU中有哪些寄存器?各有哪些用途? 答:寄存器组有(1)数据寄存器,含AX、BX、CX、DX四个通用寄存器,用来暂时存放计算过程中所遇到的操作数,结果和其它信息。(2)指针及变址寄存器,含SP、BP、SI、DI四个十六位寄存器,它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。还用来在段内寻址时提供偏移地址。(3)段寄存器,含CS、DS、SS、ES,用来专门存放段地址。(4)控制寄存器,包括IP和PSW两个16为寄存器。IP是指令指针寄存器,用来存放代码段中的偏移地址。 PSW为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结果的状态信息。包括OF、SF、ZF、CF、AF、PF。控制标志位有三个寄存器DF、IF、TF组成。 2.是说明8086/8088CPU中标志位寄存器中各标志位的意义? 答:OF溢出标志,在运算过程中,如操作数超出了机器能表示的范围则置1,否则置0。SF符号标志,运算结果为负时置1,否则置0。 ZF零标志,运算结果为0置1,否则置0 。 CF进位标志,记录运算是最高有效位产生的进位。 AF辅助进位标志,记录第三位的进位情况。 PF奇偶标志位,用来为机器中传送信息时可能产生的出错情况提供检验条件,当结果操作数中的1的个数为偶时置1。 DF方向标志位,在串处理指令中控制处理信息的方向。当DF=1时,每次操作后变址寄存器减量,这样就使串处理从高地址向低地址方向处理。IF中断标志,当IF=1时,允许中断,否则间断中断。TF陷阱标志,用于单步操作方式,当TF为1时,每条指令执行完后产生陷阱,由系统控制计算机。当TF为0时,CPU正常工作不产生陷阱。 3.哪些操作只能隐含使用某个段寄存器,而不能用其它段寄存器代替?哪些操作出隐含使用某个段寄存器外,还可以使用其它段寄存器? 答:计算程序的地址隐含使用CS,正在执行的程序隐含使用SS,而数据的地址隐含使用ES和DS。4.8086/8088系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的? 答:由段地址和偏移地址两部分构成。 5.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示: (1)1234H:___H (2)____H:0345H 答:(1)1234H:05H (2) 1200H:0345H 6.假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少?答:(SS)*10H+(SP)=09564H 7.设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。 答:物理地址为:3E4B0H, SP的初始值为200H,指向的物理地址为:3E6B1H.。 8.设某用户程序(SS)=0925H,SP=30H,(AX)=1234H,(DX)=5678H,问堆栈的地址范围是多少?如现有两条进展指令: PUSH AX PUSH DS 试问两指令执行后,(SP)=? 答:寻址范围:09250H~09280H,SP减4为2CH。 9.8086CPU与 8088CPU由哪些相同之处?又有哪些区别? 答:他们内结构基本相同,不同之处仅在于8088有8条外部数据总线,因此为准16位。 8088有16条外部数据总线,两个CPU的软件完全兼容,程序的编制也完全相同。 10.8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么? 答:8086CPU从功能上分外两大部分,一是执行部件(EU),二是总线接口部件(BIU)。

微机原理与应用作业答案

1. 若二进制数为 ,则该数的十进制表示为( B : )。 2. 为二进制补码,该数的真值为( C +58 )。 3. 01000110为二进制补码, 该数的真值为( A +70 )。 4. 8位二进制数的原码表示范围为( C -127 ~ +127 )。 5. n 位二进制数的原码表示范围为( C 12~1211-++---n n )。 6. 8位二进制数的反码表值范围为( C -127~ +127 )。 7. n 位二进制数的反码表示范围为( C 12~1211-++---n n )。 8. 8位二进制数的补码表值范围为( B -128 ~ +127 )。 9. n 位二进制数的补码表示范围为( B 12~211-+---n n )。 10. 8位二进制数的无符号数表值范围为( A 0 ~ 255 )。 11. 决定计算机主要性能的是( A 中央处理器 )。 12. M I P S 用来描述计算机的运算速度,含义是( C 每秒执行百万条指令 )。 13. 完整的计算机系统应包括( D 硬件设备和软件系统)。 14. 计算机硬件主要由C P U 、内存、I /O 设备和( B 三总线 )组成。 15. 包含在8086C P U 芯片内部的是( A 算术逻辑单元)。 16. 在机器数( B 补码)中,零的表示形式是惟一的。 17. 程序计数器P C 的作用是( A 保存将要执行的下一条指令的地址)。 18. 8086当前被执行的指令存放在( D CS :IP )。 19. 运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为( D 相加结果的符号位与两同号加数的符号位相反则产生溢出)。 20. 8086中,存储器物理地址形成算法是( B 段地址左移4位/16/10H+偏移地址 )。 21. 下列逻辑地址中对应不同的物理地址的是( 03E0H :0740H )。 A :0400H :0340H B :0420H :0140H D :03C0H :0740H 22. 存储字长是指( B 存储单元中二进制代码个数)。 23. 8086系统中,每个逻辑段的最多存储单元数为( C 64KB )。 24. 若某C P U 具有64G B 的寻址能力,则该C P U 的地址总线宽度为( 36 )。 25. 下列数中最小的数是( A (1011011)2 )。 26. 指令队列具有( D 暂存预取指令 )的作用。 27. 指令队列工作方式为( A 先进先出 )。 28. 堆栈存储器存取数据的方式是( C 先进后出)。 29. 8086系统中,一个栈可用的最大存储空间是( B 64KB )。 30. 8086C P U 有( C 8 )个8位的通用寄存器。 31. 8086C P U 共有( D 14)个16位寄存器。 32. 某补码表示的8位二进制整数由5个1和3个0组成,则其可表示的最小值是 ( A -113 )。 33. 16个字数据存储区的首址为70A 0H :D D F 6H ,末字单元的物理地址为( C :7E814H )。 34. 8个字节数据存储区的首址为70A 0H :D D F 6H ,末字节单元的物理地址为( D :7E7FDH )。 35. 用M B 表示存储器容量时,1M B 等于( C 220个字节)。 1. 8086与外设进行数据交换时,常会在( T 3 )后进入等待周期T w 。 2. 下列说法中属于最小工作模式特点的是( A CPU 提供全部的控制信号)。 3. 下列说法中属于最大工作模式特点的是( C 需要总线控制器8288 )。 4. 8086 C P U 中,需要( B 2 )片数据总线收发器芯片8286。 5. 8086C P U 中,需要( C 3 )片地址锁存器芯片8282。 6. 从8086存储器中读取非规则字需要( B 2 )个总线周期。 7. 从8086存储器中读取奇地址存储的字节需要( A :1 )个总线周期。 8. 下列说法中,不正确的是( C 栈底是堆栈地址较小的一端)。 9. 在8086系统中,用控制线( D M/IO )实现对存储器和I /O 接口的选择。 10. C P U 对存储器访问时,地址线和数据线的有效时间关系为( B 地址线先有效)。 11. 8086 C P U 共有( D 21 )根分时复用总线。

微机课后答案1

第1章作业答案 1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同? 解: 把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微 处理器。微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成了 微型计算机。微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形 成了微型计算机系统。 1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能? 解: CPU主要由起运算器作用的算术逻辑单元、起控制器作用的指令寄存器、指 令译码器、可编程逻辑阵列和标志寄存器等一些寄存器组成。其主要功能是进行算 术和逻辑运算以及控制计算机按照程序的规定自动运行。 1.3 微型计算机采用总线结构有什么优点? 解: 采用总线结构,扩大了数据传送的灵活性、减少了连线。而且总线可以标准 化,易于兼容和工业化生产。 1.4 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用 一套总线或者合用部分总线,那么要靠什么来区分地址和数据? 解: 数据总线是双向的(数据既可以读也可以写),而地址总线是单 向的。 8086CPU为了减少芯片的引脚数量,采用数据与地址线复用,既作数据总线也作为 地址总线。它们主要靠信号的时序来区分。通常在读写数据时,总是先输出地址 (指定要读或写数据的单元),过一段时间再读或写数据。

1.8在给定的模型中,写出用累加器的办法实现15×15的程序。 解: LD A, 0 LD H, 15 LOOP:ADD A, 15 DEC H JP NZ, LOOP HALT 第 2 章作业答案 2.1 IA-32结构微处理器直至Pentillm4,有哪几种? 解: 80386、30486、Pentium、Pentium Pro、Peruium II 、PentiumIII、Pentium4。 2.6 IA-32结构微处理器有哪几种操作模式? 解: IA一32结构支持3种操作模式:保护模式、实地址模式和系统管理模式。操 作模式确定哪些指令和结构特性是可以访问的。 2.8 IA-32结构微处理器的地址空间如何形成? 解: 由段寄存器确定的段基地址与各种寻址方式确定的有效地址相加形成了线性地址。若末启用分页机制,线性地址即为物理地址;若启用分页机制,则它把线性地址转为物理地址。 2.15 8086微处理器的总线接口部件由哪几部分组成? 解: 8086微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信息传 送。具体地说,BIU既负责从内存的指定部分取出指令,送至指令队列

微机原理习题解答

第一章微型计算机的基础知识 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=

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

第一章 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.微型计算机控制系统的硬件由哪几部分组成各部分作用 由四部分组成 (1)主机:这是微型计算机控制系统的核心,通过接口它可以向系统的各个部分发出各种命令,同时对被控对象的被控参数进行实时检测及处理。主机的主要功能是控制整个生产过程,按控制规律进行各种控制运算(如调节规律运算、最优化计算等)和操作,根据运算结果作出控制决策;对生产过程进行监督,使之处于最优工作状态;对事故进行预测和报警;编制生产技术报告,打印制表等等。 (2)输入输出通道:这是微机和生产对象之间进行信息交换的桥梁和纽带。过程输入通道把生产对象的被控参数转换成微机可以接收的数字代码。过程输出通道把微机输出的控制命令和数据,转换成可以对生产对象进行控制的信号。过程输入输出通道包括模拟量输入输出通道和数字量输入输出通道。 (3)外部设备:这是实现微机和外界进行信息交换的设备,简称外设,包括人机联系设备(操作台)、输入输出设备(磁盘驱动器、键盘、打印机、显示终端等)和外存贮器(磁盘)。其中作台应具备显示功能,即根据操作人员的要求,能立即显示所要求的内容;还应有按钮,完成系统的启、停等功能;操作台还要保证即使操作错误也不会造成恶劣后果,即应有保护功能.

(4)检测与执行机构:a.测量变送单元:在微机控制系统中,为了收集和测量各种参数,采用了各种检测元件及变送器,其主要功能是将被检测参数的非电量转换成电量.b. 执行机构:要控制生产过程,必须有执行机构,它是微机控制系统中的重要部件,其功能是根据微机输出的控制信号,改变输出的角位移或直线位移,并通过调节机构改变被调介质的流量或能量,使生产过程符合预定的要求。 2、微型计算机控制系统的软件有什么作用说出各部分软件的作用。 软件是指能够完成各种功能的计算机程序的总和。整个计算机系统的动作,都是在软件的指挥下协调进行的,因此说软件是微机系统的中枢神经。就功能来分,软件可分为系统软件、应用软件及数据库。 (1)系统软件:它是由计算机设计者提供的专门用来使用和管理计算机的程序。对用户来说,系统软件只是作为开发应用软件的工具,是不需要自己设计的。 系统软件包括:a.操作系统:即为管理程序、磁盘操作系统程序、监控程序等; b.诊断系统:指的是调节程序及故障诊断程序; c.开发系统:包括各种程序设计语言、语言处理程序(编译程序)、服务程序(装配程序和编辑程序)、模拟主系统(系统模拟、仿真、移植软件)、数据管理系统等; d.信息处理:指文字翻译、企业管理等。

微机原理答案共16页文档

1.8086/8088 CPU由哪两部分组成?它们的主要功能各是什么?它们之间是如何协调工作的? 微处理器(CPU)总线接口部件(BIU):负责与存储器、I/O 端口传送数据执行部件(EU):负责指令的执行协调工作过程:总线接口部件和执行部件并不是同步工作的,它们按以下流水线技术原则来协调管理: ①每当8086 的指令队列中有两个空字节,或者8088 的指令队列中有一个空字节时,总线接口部件就 ②每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件进入总线周期,完成访问内存或者输入/输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的操作,然后再去响应执行部件发出的访问总线的请求。 ③当指令队列已满,而且执行部件又没有总线访问请求时,总线接口部件便进入空闲状态。 ④在执行转移指令、调用指令和返回指令时,由于程序执行的顺序发生了改变,不再是顺序执行下面一条指令,这时,指令队列中已经按顺序装入的字节就没用了。遇到这种情况,指令队列中的原有内容将被自动消除,总线接口部件会按转移位置往指令队列装入另一个程序段中的指令 2.8086/8088 CPU中有哪些寄存器?各有什么用途?标志寄存器F有哪些标志位?各在什么情况下置位? 通用寄存器:用于存放操作数和指针 段寄存器CS 控制程序区DS 控制数据区SS 控制堆栈区ES 控制数据区 标志寄存器F 的标志位:①控制标志:OF、DF、IF、TF;②状

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

6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原=10101010B [-42]反=11010101B [-42]补=11010110B [+85]原=01010101B=[+85]反=[+85]补 [-85]原=11010101B [-85]反=10101010B [-85]补=10101011B 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.将二进制数转换为十六进制数为。 2.将十进制数199转换为二进制数为____ ____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数转换成二进制是。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数转换成二进制为、八进制、十六进制。(精确到小数点后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,则一个时钟周期的时间为μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。 5. 在8086系统中,若某一存贮单元的逻辑地址为7FFFH:5020H,则其物理地址为

微机习题答案

微机原理与接口技术试题库 第一章基础知识 一、填空 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

微机原理答案

第3章8086/8088指令系统与寻址方式习题 3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H, BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。 (1)MOV BX,12 ;目标操作数为寄存器寻址 (2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H (3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H (4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H (5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H (6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H (8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H (9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H 3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。 (1)XCHG CS,AX ;错,CS不能参与交换 (2)MOV [BX],[1000] ;错,存储器之不能交换 (3)XCHG BX,IP ;错,IP不能参与交换 (4)PUSH CS (5)POP CS ;错,不能将数据弹到CS中 (6)IN BX,DX ;输入/输出只能通过AL/AX (7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元 (8)MOV CS,[1000] ;CS不能作为目标寄存器 (9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址 (10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址 (11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀 3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么? 当前栈顶的地址=2FF00H 当执行PUSH BX 指令后,栈顶地址=2FEFEH (2FEFEH)=57H (2FEFFH)=34H 3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。 (1) SHR DX,1 ;DX=3C62H CF=1 (2) SAR DX,CL ;DX=03C6H CF=0 (3) SHL DX,CL ;DX=18A0H CF=1 (4) ROR DX,CL ;DX=2BC6H CF=0 (5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0; 3.9 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。 AX CF ZF OF SF PF (1)XOR AX,VALUE ; 134EH 0 0 0 0 1 (2)AND AX,VALUE ; 0821H 0 0 0 0 1 (3)SUB AX,VALUE ; F142H 1 0 0 1 1 (4)CMP AX,VALUE ; 0A69H 1 0 0 1 1 (5)NOT AX ; F596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1

微机原理作业答案

创作编号:BG7531400019813488897SX 创作者:别如克* 微机原理作业 1.8086C P U由哪两部分组成?它们的主要功能是什么? 答:8086CPU由总线接口单元(BIU)和指令执行单元(EU)组成。总线接口单元(BIU)的功能是:地址形成、取指令、指令排队、读/写操作数和总线控制。指令执行单元(EU)的功能是指令译码和指令执行。 2.微型计算机系统由微处理器、存储器和I/O接口 等组成。 3.8086CPU中的指令队列可存储6个字节的指令代码,当指令 队列至少空出 2 个字节时,BIU单元便自动将指令取到指令 队列中; 4.8086系统中,1MB的存储空间分成两个存储体:偶地址存 储体和 奇地址存储体,各为512 字节。 5.8086系统中存储器采用什么结构?用什么信号来选中存储体?答:8086存储器采用分体式结构:偶地址存储体和奇地址存储体,各为512K。用AO和BHE来选择存储体。当AO=0时,访问偶地址存储体;当BHE=0时,访问奇地址存储体;当AO=0,BHE=0时,访问两个存储体。 6.在8086CPU中,指令指针寄存器是 C 。 (A) BP (B) SP (C) IP (D) DI 7.8086CPU中的SP寄存器的位数是 B 。 (A) 8位(B) 16位(C) 20位(D) 24位

8.8086CPU中指令指针寄存器(IP)中存放的是 B 。 (A)指令(B)指令偏移地址(C)操作数(D)操作数偏移地址 9.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址 (最大),若此时入栈10个字节,SP内容是什么?若再出栈6个字 节,SP为什么值?答:堆栈段的物理地址范围:35000H~357FFH 当前顶的物理地址为:35000H+0800H=35800H 入栈10个字节以后:SP=0800H-000AH=07F6H 出栈6个字节以后:SP=07F6H+0006H=07FCH 10.下列关于8086系统堆栈的论述中,正确的是 A 。 (A) 堆栈的工作方式是“先进后出”,入栈时SP减小 (B) 堆栈的工作方式是“先进后出”,入栈时SP增大 (C) 堆栈的工作方式是“先进先出”,入栈时SP减小 (D)堆栈的工作方式是“先进先出”,入栈时SP增大 11.8086CPU对内存读/写操作,需两个总线周期的读/写操作是 D 。 (A) 从偶地址读/写一个字节(B) 从奇地址读/写一个字节 (C) 从偶地址读/写一个字(D) 从奇地址读/写一个字 12.总线周期是指 C 。 (A) 执行一条指令所需要的时间; (B) BIU完成一次读和一次写I/O端口操作所需时间之和; (C) BIU完成一次访问存储器或I/O端口操作所需要的时间; (D) BIU完成一次读和一次写存储器操作所需时间之和。 13.8086CPU通过RESET引脚上的触发信号来引起系统复位和启动,复位 时代码段寄存器CS= 0FFFFH ,指令指针IP= 0000H 。 重新启动后,从物理地址为 FFFF0H 的地方开始执行指令。 14. 8086CPU数据总线信号的状态是 C 。 (A)单向双态(B)单向三态(C)双向三态(D)双向双态

微机原理课后习题答案

第二章 1.8086CPU由哪两部分组成?它们的主要功能是什么? 8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。 总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。所有与外部的操作由其完成。 指令执行部件EU的功能:指令译码,执行指令。 2.8086CPU中有哪些寄存器?各有什么用途? 8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。 4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。 指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。 段寄存器给出相应逻辑段的首地址,称为“段基址”。段基址与段内偏移地址结合形成20位物理地址。 指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。 16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。 5.要完成下述运算或控制,用什么标志位判断?其值是什么? ⑴比较两数是否相等? 将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。 ⑵两数运算后结果是正数还是负数? 用符号标志位SF来判断,SF=1,为负数;SF=0,为正数。 ⑶两数相加后是否溢出? 用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。 ⑷采用偶校验方式。判定是否要补“1”? 用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。 (5)两数相减后比较大小? ●ZF=1时,说明两数是相等的; ●ZF=0时: 无符号数时,CF=0,被减数大;CF=1,被减数小。 带符号数时,SF=OF=0或SF=OF=1,被减数大;SF=1,OF=0或SF=0,OF1,被减数小。 (6)中断信号能否允许? 用中断标志位来判断,IF=1,允许CPU响应可屏蔽中断;IF=0,不响应。 6.8086系统中存储器采用什么结构?用什么信号来选中存储体? 8086存储器采用分体式结构:偶地址存储体和奇地址存储体,各为512k。 用A0和BHE来选择存储体。当A0=0时,访问偶地址存储体;当BHE=0时,访问奇地址存储体;当A0=0,BHE=0时,访问两个存储体。 9.实模式下,段寄存器装入如下数据,写出每段的起始和结束地址 a)1000H 10000H~1FFFFH b)1234H 12340H~2233FH c)2300H 23000H~32FFFH d)E000H E0000H~EFFFFH e)AB00H AB000H~BAFFFH

微机课后答案整理

3.2 指出下列MOV指令的源操作数的寻址方式: MOV AX,1234H MOV AX,BX MOV AX,[BX] MOV AX,TABLE;TABLE ;TABLE是一个变量名 MOV AX,[1234H] MOV AX,[BX+1234H] MOV AX,[BP][SI] MOV AX,[BX+SI-1234H] 【解】:MOV AX,1234H 立即寻址 MOV AX,BX 寄存器寻址 MOV AX,[BX] 寄存器间接寻址 MOV AX,TABLE ;TABLE是一个变量名直接寻址方式 MOV AX,[1234H] 直接寻址方式 MOV AX,[BX+1234H] 寄存器相对寻址 MOV AX,[BP][SI] 基址变址寻址 MOV AX,[BX+SI-1234H] 相对地址变址寻址 3.3 设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求下列每条指令源操作数的存储单元地址:MOV AX,[1234H] MOV AX,[BX] MOV AX,TABLE[BX] MOV AX,[BP] MOV AX,[BP][SI] 【解】:存储单元地址:(DS)×10H + EA =2000H×10H+1234H=21234H 存储单元地址:(DS)×10H +(BX)=2000H×10H+0100H=20100H 存储单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH 存储单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H 储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H =10012H 3.4 设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式: ⑴直接寻址⑵寄存器间接寻址⑶寄存器相对寻址⑷基址变址寻址 【解】:(1)直接寻址(2)寄存器间接寻址(3)寄存器相对寻址(4)基址变址寻址MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8 MOV AX,[BX+SI] 3.7 下列每组指令有何区别? (1)MOV AX,1234H 立即寻址 MOV AX,[1234H] 直接寻址 (2)MOV AX,TABLE 直接寻址 MOV AX,[TABLE] 直接寻址 (3)MOV AX,TABLE 将TABLE的内容送AX LEA AX,TALBE 将TABLE的偏移量送AX

相关文档