当前位置:文档之家› 微机原理与接口技术(楼顺天编着)课后习题答案

微机原理与接口技术(楼顺天编着)课后习题答案

微机原理与接口技术(楼顺天编着)课后习题答案
微机原理与接口技术(楼顺天编着)课后习题答案

第3章8086CPU指令系统

1.写出完成下列要求的变量定义语句:

(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;

(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;

(3)在缓冲区buf1中留出100个字节的存储空间;

(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;

(5)在变量var3中保存缓冲区buf1的长度;

(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530

var2 DB ’BYTE’,’word’,’WORD’

buf1 DB 100 DUP(?)

buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))

var3 DB LENGTH buf1

pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:

var1 DB 12,-12,20/6,4 DUP(0,55H)

var2 DB ‘Assemble’

var3 DW ‘AB’, ‘cd’, ‘E’

var4 DW var2

var5 DD var2

解:

3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设

VAR1, VAR2为字变量, L1为标号):

(1)MOV SI,100 (2)MOV BX,VAR1[SI]

(3)MOV AX, [BX] (4)MOV AL, [DX]

(5)MOV BP, AL (6)MOV VAR1, VAR2

(7)MOV CS, AX (8)MOV DS, 0100H

(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2

(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2

(13)SUB [DI], 78H (14)MOVS VAR1, VAR2

(15)PUSH 100H (16)POP CS

(17)XCHG AX, ES (18)MOV DS, CS

(19)JMP L1+5 (20)DIV AX, 10

(21)SHL BL, 2 (22)MOV AL, 15+23

(23)MUL CX (24)XCHG CL, [SI]

(25)ADC CS:[0100], AH (26)SBB VAR1-5,154

解:(1)MOV SI,100 正确。源:立即数寻址,目的:寄存器寻址(2)MOV BX,VAR1[SI] 正确。源:寄存器相对寻址,目的:寄存器寻址

(3)MOV AX,[BX] 正确。源:寄存器间接寻址,目的:寄存器寻址

(4)MOV AL,[DX] 错误。寄存器间接寻址时,DX, AX, CX不能作地址寄存器(5)MOV BP,AL 错误。操作数类型不一致

(6)MOV VAR1,VAR2 错误。两存储单元之间不能用MOV指令传送数据

(7)MOV CS,AX 错误。CS不能为目的操作数

(8)MOV DS,0100H 错误。目的操作数为段寄存器时,源操作数不能为立即数(9)MOV [BX][SI],1 错误。指令类型不定。

(10)MOV AX,VAR1+VAR2 错误。MOV指令中不能完成加法运算

(11)ADD AX,LENGTH VAR1 正确。源:立即数寻址。目的:寄存器寻址

(12)OR BL,TYPE VAR2 正确。源:立即数寻址。目的:寄存器寻址(13)SUB [DI],78H 错误。指令类型不定

(14)MOVS VAR1,VAR2 正确。目的、源均为隐含寻址。操作数仅指出操作数类型(15)PUSH 100H 错误。将常数压入堆栈,要通过寄存器来实现

(16)POP CS 错误。目的操作数不能为CS

(17)XCHG AX,ES 错误。XCHG指令的操作数不能是段寄存器

(18)MOV DS,CS 错误。MOV指令不能从段寄存器到段寄存器

(19)JMP L1+5 正确。段内直接转移

(20)DIV AX,10 错误。指令格式错误。

(21)SHL BL,2 错误。移位指令的移位数为1或者CL

(22)MOV AL,15+23 正确。源:立即数寻址,目的:寄存器。编译时就处理为38 (23)MUL CX 正确。源:寄存器寻址,目的:寄存器寻址

(24)XCHG CL,[SI] 正确。源:寄存器间接寻址,目的:寄存器寻址

(25)ADC CS:[0100],AH 正确。源:寄存器寻址,目的: 直接寻址(数据在代码段中)(26)SBB VAR1-5,154 正确。源:立即数寻址,目的:直接寻址。

4.说明下列指令对的区别:

(1)M OV AX,VAR1 与MOV AX,OFFSET VAR1

(2)M OV AX,VAR2 与LEA AX,VAR2

(3)M OV AL,LENGTH VAR1 与MOV AL,SIZE VAR1

(4)M OV AL,ES: [DI] CMP AL, [SI] 与CMPSB

(5)S HR AL,1 与SAR AL,1

(6)S HR AL,1 与ROR AL,1

(7)R OL BX,1 与RCL BX,1

解:(1)MOV AX,VAR1 把变量VAR1对应地址单元中的一个字送入AX MOV AX,OFFSET VAR1 把VAR1的有效地址的偏移地址送入AX (2)MOV AX,VAR2 把变量VAR2对应地址单元中的一个字送入AX LEA AX,VAR2 把VAR2的有效地址的偏移地址送入AX

(3)MOV AL,LENGTH VAR1 把变量VAR1的长度送入AL

MOV AL,SIZE VAR1 把变量VAR1的大小送入AL

(4)MOV AL,ES:[DI]

CMP AL,[SI] 把以ES为段地址,DI为偏移地址的一个字节送入AL,

并与以SI内容为偏移地址的一个字节作比较,改变标志寄

存器内容。(相当于作ES:(DI)与(DS: (SI)内容比较)CMPSB 对字符串中的一字节比较。寻址方式隐含。源串的地址由

DS:SI指定,目的串的地址由ES:DI指定。(相当于作

DS: (SI)与ES:(DI)内容比较)

(5)SHR AL,1 AL逻辑右移1位,最高位移入0, 最低位移入CF。

SAR AL,1 AL算术右移1位,以最高位内容移入,最低位移入CF, 其余各位

右移一位。

(6)SHR AL,1 AL逻辑右移1位,最高位移入0, 最低位移入CF。

ROR AL,1 AL的各位构成环形移位,右移一位,最低位内容同时移入到CF和

最高位。

(7)ROL BX,1 BX各位构成环形移位,左移一位,最高位内容同时移入到CF和

最低位。

RCL BX,1 BX和CF构成环形移位,左移一位,CF内容移入到最低位,最

高位移入CF。

5.写出下列转移指令的寻址方式(设L1为标号,VAR1为字型变量,DVAR1为双字型变

量):

(1)JMP L1 (2)JMP NEAR L1

(3)JNZ L1 (4)JMP BX

(5)JG L1 (6)JMP VAR1[SI]

(7)JMP FAR PTR L1 (8)JMP DVAR1

解:(1)JMP L1 段内直接寻址(2)JMP NEAR PTR L1 段内直接寻址(3)JNZ L1 段内直接寻址(4)JMP BX 段内间接寻址

(5)JG L1 段内直接寻址(6)JMP VAR1[SI] 段内间接寻址

(7)JMP FAR PTR L1 段间直接寻址(8)JMP DVAR1 段间间接寻址

6.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=3412H,(20102)=7856H,

(21200)=4C2AH,(21202)=65B7H,求下列指令执行后AX寄存器的内容:

(1)MOV AX,1200H;(2)MOV AX,BX;(3)MOV AX, [1200H];

(4)MOV AX, [BX]; (5)MOV AX,1100[BX];(6)MOV AX, [BX][SI];

(7)MOV AX,1100[BX][SI]

解:(1)1200H (2)0100H (3)4C2AH (4)3412H (5)4C2AH (6)7856H (7)65B7H

7.执行下列指令后,DX寄存器中的内容是多少?

TABLE DW 25,36,-1,-16,10000,13

PYL DW 7

……

MOV BX,OFFSET TABLE

ADD BX,PYL

MOV DX,[BX]

解:DX = 10FFH 由-16(FFF0H)的高8位和10000(2710H)的低8位构成

8.如果堆栈的起始地址为2200:0000,栈底为0100H,(SP)=00A8H,求

(1)栈顶地址;

(2)SS的内容;

(3)再存入数据5678H,3AF2H后,SP的内容。

解:栈顶地址00A8H,SS = 2200H,再存入2个字后,SP = 00A4H

9.设已用伪指令EQU定义了4个标识符:

N1 EQU 2100

N2 EQU 10

N3 EQU 20000

N4 EQU 25000

下列指令是否正确?并说明原因。

(1)ADD AL,N1-N2;(2)MOV AX,N3+N4;

(3)SUB BX,N4-N3;(4)SUB AH,N4-N3-N1;

(5)ADD AL,N2;(6)MOV AH,N2*N2

解:(1)错误。N1-N2=2090>255 (2)正确(3)正确(4)错误。N4-N3-N1=2900>255 (5)正确(6)正确

10.按下列要求写出指令:

(1)将AX寄存器的低4位清零,其余位不变;

(2)将BX寄存器的低4位臵1,其余位不变;

(3)将AL寄存器的低4位保持不变,高4位取反;

(4)测试BX中的位1和位2,当这两位同时为0时将AL臵0FFH,否则AL清零;

(5)测试BX中的位1和位2,当这两位有一位为0时将AL臵0FFH,否则AL清零;

(6)将AL中保存的字母ASCII码变换成相应的大写字母的ASCII码;

(7)将AL中保存的字母ASCII码变换成相应的小写字母的ASCII码;

(8)将AX中的各位取反;

(9)将DX中的低7位取反,高9位不变;

(10)将CX中的低8位与高8位互换。

解:(1)AND AX,0FFF0H

(2)OR BX,000FH

(3)XOR AL,0F0H

(4)TEST BX,06H (5)M OV AX,BX

JZ ZERO AND AX,06H

MOV AL,00H XOR AX,06H

JMP OVER JZ OVER

ZERO: MOV AL,0FFH MOV AL,0FFH

OVER:JMP DONE

OVER: MOV AL,0

DONE:

(6)AND AL,5FH

或者:

CMP AL,61H

JL OVER (无需变换或不是字母)

CMP AL,7AH

JG OVER (不是字母)

AND AL,5FH 或SUB AL,20H

OVER:

(7)OR AL,20H

或者:

CMP AL,41H

JL OVER (不是字母)

CMP AL,5AH

JG OVER (无需变换或不是字母)

OR AL,20H 或ADD AL,20H

OVER:

(8)XOR AX,0FFFFH 或者NOT AX

(9)XOR DX,007FH

(10)XCHG CH,CL

11.写出完成下述功能的程序段:

(1)传送40H到AL寄存器;

(2)将AL的内容乘以2;

(3)传送16H到AH寄存器;

(4)AL的内容加上AH的内容。

计算最后结果(AL)=?

解:(1)MOV AL,40H

(2)SHL AL,1

(3)MOV AH,16H

(4)ADD AL,AH

AL=96H

12.写出完成下述功能的程序段:

(1)从缓冲区BUF的0004偏移地址处传送一个字到AX寄存器;

(2)将AX寄存器的内容右移2位;

(3)将AX内容与BUF的0006偏移地址处的一个字相乘;

(4)相乘结果存入BUF的0020H偏移地址处(低位在前)。

解:(1)LEA SI, BUF

MOV AX, [SI+4]

(2) SHR AX,1

SHR AX,1

(3) MUL WORD PTR 6[SI]

(4) MOV 20H[SI],AX

MOV 22H[SI],DX

13.设(BX)=11001011B,变量VAR的内容为00110010B,求下列指令单独执行后BX的

内容:

(1)XOR BX,VAR;(2)AND BX,VAR;

(3)OR BX,VAR;(4)XOR BX,11110000B;

(5)AND BX,00001111B;(6)TEST BX,1

解:(1)00F9H

(2)0002H

(3)00FBH

(4)003BH

(5)000BH

(6)00CBH

14.设(DX)=10111011B,(CL)=3,(CF)=1,求下列指令单独执行后DX的内容:

(1)SHR DX,1;(2)SAR DX,CL;(3)SHL DX,CL;

(4)SHL DX,1;(5)ROR DX,CL;(6)ROL DL,CL;

(7)SAL DH,1;(8)RCL DX,CL;(9)RCR DL,1

解:DX= 0000 0000 1011 1011B CF=1 CL=3

(1)SHR DX,1 DX逻辑右移1 0000 0000 0101 1101B = 005DH (2)SAR DX,CL DX算术右移3 0000 0000 0001 0111B = 0017H

(3)SHL DX,CL DX逻辑左移3 0000 0101 1101 1000B = 05D8H

(4)SHL DX,1 DX逻辑左移1 0000 0001 0111 0110B = 0176H

(5)ROR DX,CL DX循环右移3 0110 0000 0001 0111B = 6017H

(6)ROL D L,CL DL循环左移3 0000 0000 1101 1101B = 00DDH

(7)SAL DH,1 DH算术左移1 0000 0000 1011 1011B = 00BBH

(8)RCL DX,CL DX带进位循环左移3 0000 0101 1101 1100B = 05DCH (9)RCR DL,1 DL带进位循环右移1 0000 0000 1101 1101B = 00DDH 15.选择题(各小题只有一个正确答案)

(1)执行下列三条指令后:

MOV SP,1000H

PUSH AX

CALL BX

a. (SP)=1000H;

b. (SP)=0FFEH;

c. (SP)=1004H;

d. (SP)=0FFCH;

(2)要检查寄存器AL中的内容是否与AH相同,应使用的指令为:

a. AND AL, AH

b. OR AL, AH

c. XOR AL, AH

d. SBB AL, AH

(3)指令JMP NEAR PTR L1与CALL L1(L1为标号)的区别在于:

a. 寻址方式不同;

b. 是否保存IP的内容;

c. 目的地址不同;

d. 对标志位的影响不同。

解:(1)D PUSHU AX则AX入栈,SP=0FFEH;CALL BX则IP入栈,SP=0FFCH (2)C 异或,若相同,则AL=0,ZF=1。

(3)B

16.寄存器DX:AX组成32位数,DX为高位,编写程序段实现:

(1)DX:AX右移3位,并将移出的低3位保存在CL中;

(2)DX:AX左移3位,并将移出的高3位保存在CL中;

解:(1)移出的3位应该按时序移入CL中。

XOR CL,CL

MOV BL,3 L1: SHR DX ,1

RCR AX ,1 RCL CL ,1 DEC BL JNZ L1

(2)移出的3位应该按时序移入CL 中。 XOR CL,CL MOV BL,3 L1: SHL AX ,1

RCL DX ,1 RCL CL ,1 DEC BL JNZ L1

17. 编写程序段实现将BL 中的每一位重复4次,构成32位的双字DX :AX ,例如当BL =

01011101B 时,则得到的(DX )=0F0FH ,(AX )=0FF0FH 。

解:算术右移时,移入的值就是最高位本身,这样可以使位内容重复,利用这一点可以实现题目的要求。

XOR DX,DX

XOR AX,AX MOV CX,4 L1: SHR BL,1 RCR AX,1 SAR AX,1 SAR AX,1 SAR AX,1 LOOP L1 MOV CX,4 L2: SHR BL,1 RCR DX,1 SAR DX,1 SAR DX,1 SAR DX,1 LOOP L2

18. 字变量VAR1中保存有小于38250的16位无符号数,编写程序段实现VAR1÷150,并

进行四舍五入操作,将商保存在字节变量VAR2中。

解:根据题意,38250÷150=255,因此商不会超过255,可以用一个字节表示。

a ÷

b 的四舍五入操作可以通过判断除后余数实现:余数大于等于除数的一半,则商加1;否则不用加1。但这种方法用汇编语言编程实现时比较复杂,这里介绍另外一种方法:设a ÷b 的四舍五入后的结果为

c ,用『』表示取整数操作,则

20.5b a a c b b ?

?+????

=+=

????

????

这种方法是在除法操作之前,在被除数上加上除数的一半,这样除法操作后得到的值就是考

虑了四舍五入的商。

VAR1 DW 12345

VAR2 DB ? DATAA DB 150

MOV AX,VAR1 XOR BX,BX

MOV BL,DATAA SHR BX,1 ADD AX,BX DIV DATAA MOV VAR2,AL

19. 有一组无符号的16位数据保存在BUFFER 中,前两个字节存放数据的个数,编程实现

按下式进行滤波处理:

()1

()()(1)(2)23()()2

y k x k x k x k k y k x k k =

+-+-≥=<

解:滤波结果保存在FILT 中。

BUFFER DW 0CH

DW 33H, 18H, 1BH, 06H, 33H, 08H DW 3H, 6H, 0FH, 51H, 05H, 0CH

FILT DW 100H DUP (?) LEA SI, BUFFER

LEA DI, FILT MOV CX, [SI] ADD SI, 2

MOV AX, [SI] AX=X1 MOV [DI], AX MOV BX, 2[SI] MOV 2[DI],BX ADD SI,4 ADD DI,4 DEC CX DEC CX

ADD AX, BX XOR DX, DX ADC DX,0 MOV BX,3 L1:

ADD AX, [SI] ADC DX,0 PUSH DX

PUSH AX

DIV BX

MOV [DI],AX

POP AX

POP DX

SUB AX, [SI-4]

SBB DX,0

ADD DI,2

ADD SI,2

LOOP L1

20.在由字符串构成的缓冲区BUFFER中,前2个字节存放字符个数,后续每个字节存放

一个字符的ASCII码。编写程序实现将字符串‘2004’替换成‘2006’。

解:在数据段中定义:

BUFFER DW 74

DB ‘This year is 2004. In 2004, we have a plan for reducing annual expensive 10%’DEST DB ‘2004’

在代码段中编写程序段:

CLD

LEA SI, BUFFER

MOV CX, [SI]

ADD SI, 2

LEA DI, DEST

L1: PUSH SI

PUSH DI

PUSH CX

MOV CX, 4

REPZ CMPSB

JNZ L2

MOV BYTE PTR [SI-1],’6’

L2: POP CX

POP DI

POP SI

INC SI

INC DI

LOOP L1

21.定义有下列宏指令:

WAGS MACRO S1,S2,S3

SUB AX,AX

MOV DX,AX

ADD AX,S1

ADD AX,S2

ADC DX,0

ADD AX,S3

ADC DX,0

ENDM

当采用宏调用指令?WAGS 60000,25000,3000?时,执行后DX=AX=。解:宏指令WAGS完成的功能为S1+S2+S3,结果放在DX:AX中。所以,调用?WAGS 60000,25000,3000?时,其结果为DX=0001H ,AX=57C0H

22.对上题定义的宏指令,如果采用宏调用指令?WAGS BX,CX,SI?时,写出宏展开形式。解:调用?WAGS BX,CX,SI?时,宏展开形式:

SUB AX,AX

MOV DX,AX

ADD AX,BX

ADD AX,CX

ADC DX,0

ADD AX,SI

ADC DX,0

23.写出宏指令SUMMING,实现将字节缓冲区array中的内容求校验和(保留低8位),并

保存在VALUE中。

解:设array前两个字节保存缓冲区字节数,在宏指令SUMMING,将array和VALUE作为形式参数。

SUMMING MACRO array,VALUE

LEA SI,array

MOV CX,[SI]

ADD SI,2

XOR AL,AL

L1: ADD AL,[SI]

INC SI

LOOP L1

MOV VALUE,AL

ENDM

第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.在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;

如果VAR中保存的为有符号数,则再编写程序实现将其按递减关系排列。

解:VAR DW 1236,-432,3900

XOR SI,,SI

MOV AX,VAR[SI]

CMP AX, VAR[SI+2]

JAE L1

XCHG AX, VAR[SI+2]

L1:

CMP AX, VAR[SI+4]

JAE L2

XCHG AX, VAR[SI+4]

L2:

MOV VAR[SI], AX

MOV AX,VAR[SI+2]

CMP AX, VAR[SI+4]

JAE L3

XCHG AX, VAR[SI+4]

L3:

MOV VAR[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

SHR BL,1

RCR DX,1

LOOP L1

5.在变量VAR1和VAR2中分别保存有两个字节型的正整数,编写完整的汇编语言程序实

现:

(1)当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2;

(2)当两数均为奇数时,两个变量的内容不变;

(3)当两数均为偶数时,两数缩小一倍后存入原处。

解:当VAR1为奇数时,不论VAR2的奇偶性,这两个单元的内容均不变;只有当VAR1为偶数时,如果VAR2为奇数,则VAR1与VAR2内容交换;如果VAR2为偶数,则两数缩小一倍后存入原处。

DATA SEGMENT

VAR1 D B 28

VAR2 DB 36

DATA ENDS

CODE SEGMENT

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

START:

MOV AX, DATA

MOV DS,AX

MOV ES, AX

MOV AL,VAR1

MOV BL,VAR2

TEST AL,1

JZ E VEN1

JMP OVER

EVEN1:

TEST BL,1

JZ EVEN2

MOV VAR1,BL

MOV VAR2,AL

JMP OVER

EVEN2:

SHR AL,1

MOV VAR1,AL

SHR BL,1

MOV VAR2,BL

OVER:

MOV AH,4CH

MOV AL,0

INT 21H

CODE ENDS

END START

6.已知在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个错码,编写

程序段找出这个错码,并将它送到AX,其地址送SI;如果3个代码都相同,则在AX 中臵-1标志。

解:在数据段中定义:

VAR1 DW 5A34H

VAR2 DW 5A35H

VAR3 DW 3A34H

在代码段中编写程序段:

MOV AX,-1

MOV BX,VAR1

CMP BX,VAR2

JZ L2

CMP BX,VAR3

JZ L1

MOV AX,BX

LEA SI,VAR1

JMP OVER

L1:

MOV AX,VAR2

LEA SI,VAR2

JMP OVER

L2:

CMP BX,VAR3

JZ OVER

MOV AX,VAR3

LEA SI,VAR3

OVER:

7.分析下列程序段的功能:

MOV CL,04

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

解:程序段完成DX:AX组成的32位无符号数左移4位,低位补零(也即除以16)。

8.下列程序段执行后,求BX寄存器的内容:

MOV CL,3

MOV BX,0B7H

ROL BX,1

ROR BX,CL

解:实际上完成BX内容循环右移2位,因此,BX寄存器的内容为C02DH。

9.下列程序段执行后,求BX寄存器的内容:

MOV CL,5

MOV BX,7D5CH

SHR BX,CL

解:完成BX内容逻辑右移5位,因此,BX寄存器的内容为03EAH。

10.将BUFFERS中N个字按相反顺序传递到BUFFERT中。

解:

LEA SI,BUFFERS

LEA DI,BUFFERT

MOV CX,N

ADD DI,N

ADD DI,N

SUB DI,2

L1:

MOV AX,[SI]

MOV [DI],AX

ADD SI,2

SUB DI,2

LOOP L1

11.数组ARRAY中存放有一组字型数据,前两个字节存放数据长度(5的倍数)。为给这个

数组中的数据进行加密保护,每5个数据取出一个数据进行加密处理:奇数位进行取反,偶数位不变,例如对数据0110 1100 1011 0001B加密后变成1100 0110 0001 1011B,编写加密程序encrpytion 和解密程序unencrpytion 。

解:约定从第一个数据开始,每5个数据为一组,每组中的第一个数据采取加密/解密处理。由于加密算法采用的是取反操作,解密算法也采用取反操作,因此解密和解密算法是同一个程序。

ENCRPYTION PROC NEAR

LEA SI,ARRAY

XOR DX,DX

MOV AX,[SI]

MOV BX,5

DIV BX

MOV CX, AX

ADD SI, 2

L1:

MOV AX, [SI]

XOR AX,0AAAAH

MOV [SI], AX

ADD SI,10

LOOP L1

RET

ENCRPYTION ENDP

13.设BUF中存放有N个无符号数(或有符号数),编程实现求它们的最小值(存入AX)

和最大值(存入DX)。

解:BUF存放有N个无符号数的程序如下:

MOV CX,N

LEA SI,BUF

MOV AX,[SI]

MOV DX,AX

ADD SI,2

L1:

CMP AX,[SI]

JBE NOCHG1

XCHG AX,[SI]

NOCHG1:

CMP DX,[SI]

JAE NOCHG2

XCHG DX,[SI]

NOCHG2:

ADD SI,2

LOOP L1

如果BUF中存放的是有符号数,则只需要将程序中的两行内容修改:

JBE NOCHG1 改成:JLE NOCHG1

JAE NOCHG2 改成:JGE NOCHG2

14.设BUFFER中存放有N个无符号(第1个字节存放缓冲区的长度),编程实现将其中的

0元素抹去,并更新其长度。

解:设BUFFER中存放的是字节型数据。采用双指针方法:SI为读指针,DI为写指针,从低地址开始,内存中读出一个字节,如果不为0,则写入内存;如果为0,则不进行写操作。

LEA SI, BUFFER

XOR CX,CX

MOV CL, [SI]

INC SI

MOV DI, SI

XOR BH,BH

XOR AL,AL

L1:

CMP [SI],AL

JZ L2

MOV BL,[SI]

MOV [DI],BL

INC DI

INC BH

L2:

INC SI

LOOP L1

MOV BUFFER,BH

16.编写一个子程序实现统计AL中1的个数,然后检测出字节型缓冲区BUF中0和1个

数相等的元素个数。

解:统计AL中1的个数,只需将AL右移,移出的一位内容进行累加,子程序为:COUNTBYTE PROC NEAR

PUSH AX

PUSH CX

MOV CX,8

XOR BL,BL

COU1:

SHR AL,1

ADC BL,0

LOOP COU1

POP CX

POP AX

RET

COUNTBYTE ENDP

在此基础上,可以检测出字节型缓冲区BUF中0和1个数相等的元素个数,即一个字节中有4个1。设BUF中有N个字节型数据,结果保持在BH中。

MOV CX,N

LEA SI, BUF

XOR BH,BH

L1: MOV AL,[SI]

CALL COUNTBYTE

CMP BL,4

JNZ L2

INC BH

L2: INC SI

LOOP L1

19.在缓冲区BUFFER中,第1个字节存放数组的长度(<256),从第2个字节开始存放字

符的ASCII码,编写子程序完成在最高位给字符加上偶校验。

解:STACK SEGMENT STACK 'STACK'

DW 100H DUP(?)

TOP LABEL BYTE

STACK ENDS

DATA SEGMENT

BUFFER DB 3 ;首字节为字符串长度

DB 'ABC' ;字符串

DATA ENDS

CODE SEGMENT

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

START:

MOV AX,STACK

MOV SS,AX

LEA SP,TOP

MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA DI,BUFFER

XOR CX,CX

MOV CL,[DI]

INC DI

CALL SETEVEN

MOV AH,4CH ;返回DOS

MOV AL,0

INT 21H

SETEVEN PROC NEAR ;加偶校验子程序

PUSH AX

PUSH BX

PUSH CX

PUSH DI

SETEVEN1:

MOV AL,[DI]

CALL COUNTBYTE

AND BL,01H

JZ SETEVEN2

OR AL,80H

MOV [DI],AL

SETEVEN2:

INC DI

LOOP SETEVEN1

POP DI

POP CX POP BX POP AX RET SETEVEN ENDP

COUNTBYTE PROC NEAR PUSH AX PUSH CX MOV CX,8 XOR BL,BL

COU1:

SHR AL,1 ADC BL,0 LOOP COU1 POP CX POP AX RET COUNTBYTE ENDP

CODE ENDS

END START

20. 编写程序完成求多位数(N 个字)的绝对值。

21. 已知斐波那契数列的定义为:)3(,1,12

121

≥+===--i F F F F F i i i ,编写求该

数列前n 项的子程序。

解:设奖斐波那契数列存放在字变量RESULT 中。在数据段中定义 RESULT DW 100H DUP (?)

在代码段中编写子程序 FIBONACCI PROC NEAR XOR DI,DI

MOV RESULT[DI],1 ;前两个数为1

MOV RESULT[DI+2],1

ADD DI,4 MOV CX,N

L1:

MOV AX, RESULT[DI-4] ADD AX, RESULT[DI-2] MOV RESULT[DI],AX ADD DI,2 LOOP L1 RET

FIBONACCI ENDP

22. 编写程序实现循环显示10条信息,保存每条信息的变量分别为INFOM1~INFORM10。

解:在数据段中定义变量:

TABLE DW INFORM1, INFORM2, INFORM3, INFORM4, INFORM5

DW INFORM6, INFORM7, INFORM8, INFORM9, INFORM10 在代码段中编写程序段:

MOV CX,10

XOR SI,SI

L1: MOV DX,TABLE[SI]

MOV AH,9

INT 21H

ADD SI,2

CALL WAIT

LOOP L1

这里,WAIT为延时子程序,用于在显示信息之间的停顿。

23. 编写程序实现将包含20个数据的数组ARRAY分成两个数组:正数数组ARRAYP和负数数组ARRAYN,并分别将这两个数组中数据的个数显示出来。

解:先编写一个子程序DISPALD,完成以3位十进制数形式显示出AL的内容。

DISPALD PROC NEAR

PUSH AX

PUSH CX

PUSH DX

XOR AH,AH

MOV CL,100

DIV CL

PUSH AX

MOV DL,30H

ADD DL,AL

MOV AH,2

INT 21H

POP AX

MOV AL,AH

XOR AH,AH

MOV CL,10

DIV CL

PUSH AX

MOV DL,30H

ADD DL,AL

MOV AH,2

INT 21H

POP AX

MOV DL,30H

ADD DL,AH

MOV AH,2

INT 21H

POP DX POP CX POP AX RET

DISPALD ENDP

在此基础上,根据题目要求,需要用到3个指针:SI 指向源数组ARRAY ,DI 指向正数数组ARRAYP ,BX 指向负数数组ARRAYN 。 MOV CX,20 XOR DX,DX LEA SI,ARRAY LEA DI,ARRAYP LEA BX,ARRAYN L1: MOV AL,[SI] AND AL,AL JS L2 MOV [DI],AL INC DI INC DL JMP L3 L2: MOV [BX],AL INC BX INC DH L3: INC SI LOOP L1 MOV AL,DL CALL DISPALD MOV AL,DH CALL DISPALD

24. 编写程序实现求缓冲区BUFFER 的100个字中的最小偶数(存入AX )。 解:设BUFFER 中存放的是有符号数。 MOV CX,100 LEA SI,BUFFER MOV AX, 7FFFH L1: AND WORD PTR [SI],1 JNZ L2 CMP [SI],AX JGE L2 MOV AX,[SI] L2: ADD SI,2 LOOP L1 25. 编写程序实现求级数 ++++222

21n 的前n 项和刚大于2000的项数n 。

解:BL 用于存放项数。

微机原理与接口技术课后习题与参考答案

第一章课后习题 1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。 ① 16.25 ② 35.75 ③ 123.875 ④ 97/128 1.2 把下列二进制数转换成十进制数。 ① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.1 1.3 把下列八进制数转换成十进制数和二进制数。 ① 756.07 ② 63.73 ③ 35.6 ④ 323.45 1.4 把下列十六进制数转换成十进制数。 ① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC 1.5 求下列带符号十进制数的8位补码。 ① +127 ② -1 ③ -0 ④ -128 1.6 求下列带符号十进制数的16位补码。 ① +355 ② -1 1.7 计算机分那几类?各有什么特点? 1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。 1.9 80X86微处理器有几代?各代的名称是什么? 1.10 你知道现在的微型机可以配备哪些外部设备? 1.11 微型机的运算速度与CPU的工作频率有关吗? 1.12 字长与计算机的什么性能有关? 习题一参考答案 1.1 ① 16.25D=10000.01B=20.2Q=10.4H ② 35.75D=100011.11B=43.6Q=23.CH ③ 123.875D=1111011.111B=173.7Q=7B.EH ④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H 1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D ③ 111.01B=7.25D ④ 1010.1B=10.5D 1.3 ① 756.07Q=111101110.000111B=494.109D ② 63.73Q=110011.111011B=51.922D ③ 35.6Q=11101.110B=29.75D ④ 323.45Q=11010011.100101B=211.578D 1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D ③ B7C.8D=2940.551D ④ 1ECH=492D 1.5 ① [+127] 补=01111111 ② [-1] 补 = 11111111 ③ [-0] 补=00000000 ④[-128] 补 =10000000 1.6 ① [+355] 补= 00011 ② [-1] 补 = 1111 1111 1111 1111 1.7 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统,存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 1.8 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。 1.9 答:从体系结构上可分为5代:4004:4位机;8080/8085:8位机;8086/8088/80286:16位机;80386/80486:32位机;Pentium系列机:64位。 第二章课后习题 2.1、EU与BIU各自的功能是什么?如何协同工作? 2.2、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么? 2.3、8086对存储器的管理为什么采用分段的办法?

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

第一章 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.I/O端口 答:每个连接到I/O就总线上的设备都有自己的I/O地址集,即所谓的I/O 端口(I/OPORT) 2.中断向量 答:中断向量是指早期的微机系统中将由硬件产生的中断标识码中断源的识别标志,可用来形成相应的中断服务程序的入口地址或存放中断服务程序的首地址。 3.独立编址 答:独立编址(专用的I/O端口编址)存储器和I/O端口在两个独立的地址空间中。 4.可编程 答:可编程一般指的是可编程控制器(Programmbie Controller)简称PC或PLC 是一种数字运算操作的电百子系统,专门在工业环境下应用而设计。 5.模/数转换 答:模/数转换,或叫数字化,是将现实世界中连接变化的波形转变成可以在计算机中存储和处理的数字信号的过程。 二.简答题 1.在8253计数器/定时器的6种式作方式中,方式2和方式3各输出何种波形?它们有何种特点? 答:方式2输出连接负脉冲,脉冲宽度同CLK周期;方式3输出连接方波;计数初值偶数时输出对称方波,为奇数时输出非对称方波,即能高电平启动,也能上跳启动。

2.为什么在长途串行通讯中需要加入Modem,常用的调制方法有哪几种? 答:二进制数据信号频带很宽,而通信线路往往使用公用电话线,电话线宽有限,这会导致接收端信号严重失真。接收端进行解调。调制方法有:调幅、调频、调相。 3.简述即插即用功能。 答:即插即用是指为微机系统提供了这样的一种功能:只要将扩展卡插入微机的扩展槽中时,微机系统会自动进行扩展卡的配置工作,保证系统资源空间的合理分配,以免发生系统资源占用的冲突。这一切都是开机后由系统自动进行的,而无需操作人员的干预。为达到即插即用,完全一致的要求,应该变PC系统的4个主要部分,即基于ROM的BIOS、操作系统、硬件设备和应用软件。PCI所采用的技术非常完善,为用户提供真正的即插即用功能。真正具有即插即用功能的接口是USB。 4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。 答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。 DMA方式适合场合:高速、批量数据的简单传送。 中断方式适用场合:处理复杂随机事件、控制低速I/O设备。

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

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

微机原理与接口技术习题答案

《微机原理与接口技术》习题答案 一、单项选择题 1、80486CPU进行算术和逻辑运算时,可处理的信息的长度为( D )。 A、32位 B、16位 C、8位 D、都可以 2、在下面关于微处理器的叙述中,错误的是( C ) 。 A、微处理器是用超大规模集成电路制成的具有运算和控制功能的芯片 B、一台计算机的CPU含有1个或多个微处理器 C、寄存器由具有特殊用途的部分内存单元组成,是内存的一部分 D、不同型号的CPU可能具有不同的机器指令 3、若用MB作为PC机主存容量的计量单位,1MB等于( B )字节。 A、210个字节 B、220个字节 C、230个字节 D、240个字节 4、运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为( D )。 A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出 B、两个整数相加,若结果的符号位为0,则一定发生溢出 C、两个整数相加,若结果的符号位为1,则一定发生溢出 D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出 5、运算器的主要功能是( C )。 A、算术运算 B、逻辑运算 C、算术运算与逻辑运算 D、函数运算 6、指令ADD CX,55H[BP]的源操作数的寻址方式是(D )。 A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、寄存器相对寻址 7、设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=(A ) A、113AH B、114AH C、1144H D、1140H 8、若SI=0053H,BP=0054H,执行SUB SI,BP后,则( C)。 A、CF=0,OF=0 B、CF=0,OF=1 C、CF=1,OF=0 D、CF=1,OF=1 9、已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=(D ) 。 A、0102H B、0201H C、245AH D、5A24H 10、实模式下80486CPU对指令的寻址由(A )决定。 A、CS,IP B、DS,IP C、SS,IP D、ES,IP 11、使用80486汇编语言的伪操作指令定义: VAL DB 2 DUP(1,2,3 DUP(3),2 DUP(1,0)) 则

微机原理与接口技术课后习题答案

第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.1、接口技术在微机应用中起什么作用? 答:在微机系统中,微处理器的强大功能必须通过外部设备才能实现,而外设与微处理器之间的信息交换和通信又是靠接口来实现的,所以,接口处于微机总线与设备之间,进行CPU与设备之间的信息交换。 1.2、微机接口技术的基本任务是什么? 答:通过接口实现设备与总线的连接;连接起来以后,CPU通过接口对设备进行访问,即操作或控制设备。 1.5、什么是I/O设备接口? 答:设备接口是指I/O设备与本地总线(如ISA总线)之间的连接电路并进行信息(包括数据、地址及状态)交换的中转站。 1.6、I/O设备接口一般应具备哪些功能? 答:微机的接口一般有如下的几个功能: (1)执行CPU命令的功能:CPU将对外设的控制命令发到接口电路中的命令寄存器(命令口)中,在经分析去控制外设;(2)返回外设状态的功能:通过状态寄存器(状态口)完成,包括正常工作状态和故障状态;(3)数据缓冲的功能:接口电路中的数据寄存器(数据口)对CPU于外设间传送的数据进行中转;(4)设备寻址的功能:CPU某个时刻只能和一台外设交换数据,CPU发出的地址信号经过接口电路中的地址译码电路来选中I/O设备;(5)信号转换的功能:

当CPU与外设的信号功能定义、逻辑关系、电平高低及工作时序不兼容时接口电路要完成信号的转换功能;(6)数据宽度与数据格式转换的功能:由于CPU处理的数据都是并行的,当外设采用串行传送方式时,接口电路就要完成串、并之间的转换,并进行数据格式的转换。 1.8、I/O设备接口与CPU之间交换数据有哪几种方式? 答:1.查询方式;2.中断方式;3.直接存储器存取(DMA)方式。 2.1、什么是总线?总线在微机系统中起什么作用? 答:总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。 总线作用:连接微处理器、存储器、外部设备构成微机系统,从而形成一个有机的整体来运行程序。它的基本任务是微处理器对外连接和传输数据。具体任务:一是负责总线与总线之间的连接与转换。二是完成设备信息的传递。三是支持即插即用。 2.2、微机总线由哪些信号线组成? 答:微机总线由:数据总线、地址总线、控制总线、电源线和地线组成。。 2.4、评价一种总线的性能有哪几个方面的因素要考虑? 答:评价一种总线的性能有以下个方面:1、总线频率;2、总线宽度;

微机原理课后答案

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.8086CPU 是一个 位的微处理器,具有 位数据总线, 位地址总线,可寻址空间为 。 CS 是指 寄存器,用来存放当前程序所在段的 。 DS 是指 寄存器,用来存放当前程序所用数据段的 。 ES 是指 寄存器,用来存放辅助数据所在段 的 。 SS 是指 寄存器,用来存放当前程序所用 段的段基址。 指令指针寄存器IP 用来存放下一条指令的 地 址。 8086存储器中存放信息如图所示,则30022H 单元的字节内容为 , 30020H 单元的字内容为 。 ⒉指出下列指令源操作数的寻址方式: MOV AX ,ARRA Y[SI] MOV AX ,ES :[BX] MOV AX ,[200H] MOV AX ,[BX+DI] MOV AX ,BX MOV AX ,1200H MOV AX ,20[BX+SI] MOV AX ,[DI+20] ⒊ 8255A 中共有________________个8位端口,其中_____________口既可作数据口,又可产生控制信号,若要所有端口均为输出口,则方式选择字应为 ____________________________。 ⒋ 8253定时/计数器内部有 个端口、共有 种工作方式。 ⒌8255的A1和A0引脚分别连接在地址总线的A1和A0,当命令端口的口地址为317H 时,则A 口、B 口、C 口的口地址分别为 、 、 。 ⒍假设(DS) = 2000H, (ES) = 3000H ,(SS) = 4000H, (BX) = 1000H ,(BP) = 1000H, (DI) = 0002H ,(21000H) = 1234H, (21002H) = 5678H ,(31000H) = 9ABCH, (31002H) = 0DEF0H ,(41000H) = 3456H, (41002H) = 789AH 。则MOV AX, ES:[1000H] 执行时操作数的物理地址为 ;MOV AX, [BX]执行后(AX) = ;MOV AX ,[BP + DI] 执行时操作数的物理地址为 ,执行后(AX) = 。 ⒎可编程串行接口芯片8251A 可检测______________________________三种错 30020h 30021h 30022h 30023h 30020h

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

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章 1.简述名词的概念:微处理器、微型计算机、微型计算机系统。 答: (1)微处理器:微处理器(Microprocessor)简称μP或MP,或CPU。CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU(Arithmetic Logic Unit)、控制部件CU (Control Unit)和寄存器组R(Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。 (2)微型计算机:微型计算机(Microcomputer)是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。 (3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。 软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。一般把软件划分为系统软件和应用软件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。 2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。 答: (1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。 (2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。 (3)标志寄存器:标志寄存器(Flags,F)是CPU中不可缺少的程序状态寄存器,因此,也称程序状态字寄存器(PSW),所谓状态是指算术或逻辑运算后,结果的状态以二进制的0或1在标志寄存器中标识出来,例如,运算结果有进位,则进位标志位CF=1,否则为0。 3.何谓IA-32处理器?

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

部分习题答案 (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 将下列十进制数转换为二进制数、十六进制数。 (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.8086CPU 是一个 位的微处理器,具有 位数据总线, 位地址总线,可寻址空间为 。 CS 是指 寄存器,用来存放当前程序所在段的 。 DS 是指 寄存器,用来存放当前程序所用数据段的 。 ES 是指 寄存器,用来存放辅助数据所在段 的 。 SS 是指 寄存器,用来存放当前程序所用 段的段基址。 指令指针寄存器IP 用来存放下一条指令的 地 址。 8086存储器中存放信息如图所示,则30022H 单元的字节内容为 , 30020H 单元的字内容为 。 ⒉指出下列指令源操作数的寻址方式: MOV AX ,ARRAY[SI] MOV AX ,ES :[BX] MOV AX ,[200H] MOV AX ,[BX+DI] MOV AX ,BX MOV AX ,1200H MOV AX ,20[BX+SI] MOV AX ,[DI+20] ⒊ 8255A 中共有________________个8位端口,其中_____________口既可作数据口,又可产生控制信号,若要所有端口均为输出口,则方式选择字应为 ____________________________。 ⒋ 8253定时/计数器内部有 个端口、共有 种工作方式。 ⒌8255的A1和A0引脚分别连接在地址总线的A1和A0,当命令端口的口地址为317H 时,则A 口、B 口、C 口的口地址分别为 、 、 。 ⒍假设(DS) = 2000H, (ES) = 3000H ,(SS) = 4000H, (BX) = 1000H ,(BP) = 1000H, (DI) = 0002H ,(21000H) = 1234H, (21002H) = 5678H ,(31000H) = 9ABCH, (31002H) = 0DEF0H ,(41000H) = 3456H, (41002H) = 789AH 。则MOV AX, ES:[1000H] 执行时操作数的物理地址为 ;MOV AX, [BX]执行后(AX) = ;MOV AX ,[BP + DI] 执行时操作数的物理地址为 ,执行后(AX) = 。 ⒎可编程串行接口芯片8251A 可检测______________________________三种错 30020h 30021h 30022h 30023h 30020h

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