微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx

上传人:b****6 文档编号:16884614 上传时间:2022-11-26 格式:DOCX 页数:58 大小:145.56KB
下载 相关 举报
微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx_第1页
第1页 / 共58页
微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx_第2页
第2页 / 共58页
微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx_第3页
第3页 / 共58页
微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx_第4页
第4页 / 共58页
微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx

《微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx(58页珍藏版)》请在冰豆网上搜索。

微机原理汇编语言与接口技术 周杰英张萍 习题答案汇总Word下载.docx

1010000

01000011

(2)O:

01001111

11001101(4)P:

11010000

8.请用8位二进制数写出下列字符带偶校验的ASCII码。

(1)+:

0101011

(2)=:

0111101

(3)#:

0100011(4)>

0111110

00101011

(2)=:

10111101

10100011(4)>

10111110

9.叙述CPU中PC的作用。

PC是CPU中的程序计数器,其作用是提供要执行指令的地址。

 

第2章微处理器的结构

习题与参考答案

1.8086/8088CPU由哪两大部分组成?

请分别叙述它们的功能。

8086/8088CPU均由两个独立的逻辑单元组成,一个称为总线接口单元BIU(BusInterfaceUnit),另一个称为执行单元EU(ExecutionUnit)。

总线接口单元BIU取指令时,从存储器指定地址取出指令送入指令队列排队;

执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据。

执行单元EU任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。

2.8086/8088与传统的计算机相比在执行指令方面有什么不同?

这样的设计思想有什么优点?

总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。

这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令。

即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的。

这样大大提高了CPU利用率,降低了系统都对存储器速度的要求。

3.状态标志和控制标志有何不同?

8086/8088的状态标志和控制标志分别有哪些?

8086/8088CPU设立了一个两字节的标志寄存器,共九个标志。

其中标志位O、S、Z、A、P、C是反映前一次涉及ALU操作结果的状态标志,D、I、T是控制CPU操作特征的控制标志。

4.8086/8088CPU寻址存储器时,什么是物理地址?

逻辑地址?

它们之间有何关系?

8086/8088系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码。

在CPU与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元。

逻辑地址由段地址和偏移地址两部分组成。

逻辑地址的表示格式为:

段地址:

偏移地址。

知道了逻辑地址,可以求出它对应的物理地址:

物理地址=段地址×

10H+偏移地址。

5.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?

指向这一物理地址的CS值和IP值是唯一的吗?

根据:

10H+偏移地址,指令的物理地址为21F00H。

指向这一物理地址的CS值和IP值不唯一。

6.8086CPU中

信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的?

这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?

怎样区分?

若存取一个字节的数据,总是用一个总线周期来完成该操作;

若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成。

对规则字,只用一个总线周期来完成16位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存储操作,先取其奇地址字节(即数据的低位字节),然后存取偶地址字节。

在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,即通过总线高字节传送。

信号和A0信号控制存储器读写见下表:

操作

A0

使用的数据总线

存取规则字

AD15~AD0

传送偶地址的一个字节

1

AD7~AD0

传送奇地址的一个字节

AD15~AD8

存取非规则字

AD15~AD8(第一个总线周期)

AD7~AD0(第二个总线周期)

为非法码

第3章80x86指令系统

1、指出下列指令中操作数的寻址方式(8086系统)。

(1)MOVAX,100

(2)MOVAX,[100]

(3)MOVDL,[BP+SI](4)MOV[BX],CX

(5)MOVDX,[SI](6)MOV1234H[BX],DS

(7)MOV[DI+5678H],AL(8)MOV12[BP][DI],BH

(9)POPCX(10)MOVAX,[BX+SI+10]

目的操作数

源操作数

(1)MOVAX,100

寄存器寻址

立即数寻址

(2)MOVAX,[100]

直接寻址

(3)MOVDL,[BP+SI]

基址变址寻址

(4)MOV[BX],CX

寄存器间接寻址

(5)MOVDX,[SI]

(6)MOV1234H[BX],DS

寄存器相对寻址

(7)MOV[DI+5678H],AL

(8)MOV12[BP][DI],BH

相对基址变址寻址

(9)POPCX

隐含为堆栈

(10)MOVAX,[BX+SI+10]

2、指出下列指令中操作数的寻址方式(80386系统)。

(1)MOV[EBX+12H],AX

(2)MOV[EBP+EDI*2],EBX

(3)MOV[EBX*4],BX(4)MOVEDX,[EAX+ESI*8-12H]

(1)寄存器相对寻址

寄存器寻址

(2)基址比例变址寻址

(3)比例变址寻址

(4)寄存器寻址

相对基址比例变址寻址

3、指出以下指令中,哪些指令是非法的,并说明为什么(8086系统)。

(1)PUSH1234H

(2)MOVCS,AX

(3)INAX,300(4)MOVAX,[DX+12]

(5)MOVBX,[BX](6)MOVDS,1000H

(7)XCHGAL,AL(8)MOVAL,100H

(9)MOVDX,AL(10)LEABL,[BX+5]

(11)LEADX,BX(12)MOV[1000H],12H

(13)ADDAX,DS(14)SUB[0100H],BYTEPTR[0001]

(15)SHLBL,2(16)SHRCL,CL

(17)MULAL,BL(18)INT400

(1)非法,8086系统不允许PUSH指令的操作数为立即数;

(2)非法,MOV指令中CS不能作为目的操作数;

(3)非法,端口号大于0FFH;

(4)非法,DX不能出现在中括号[]内;

(5)合法;

(6)非法,不能把立即数赋给段寄存器;

(7)合法;

(8)非法,源操作数大于0FFH,不能赋给8位寄存器AL;

(9)非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;

(10)非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;

(11)非法,LEA指令的源操作数只能是存储器操作数;

(12)非法,指令存在歧义,无法确定传送的是字节还是字;

(13)非法,段寄存器不能参与算术运算;

(14)非法,源和目的寄存器不能同为存储器操作数;

(15)非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;

(16)合法;

(17)非法,在8086系统中MUL指令没有双操作数的用法;

(18)非法,中断类型号大于0FFH。

4、指出以下指令中,哪些指令是非法的,并说明为什么(80386系统)。

(1)MOVAX,12[EBX][SI*16]

(2)RCREAX,10

(3)PUSH5678H(4)POP1000H

(5)MOV[EAX+EAX],EAX(6)MOVAL,[ESP+ESP*2]

(7)MOVBL,[AX+12](8)IMULAL,BL,12

(1)非法,比例因子只能是1、2、4、8,不能是16;

(2)合法;

(3)合法;

(4)非法,POP指令的目的操作数不能是立即数;

(6)非法,ESP只能作为基址寄存器,不能作为变址寄存器;

(7)非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;

(8)合法。

5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。

PUSHAX;

(AX)=?

,(BX)=?

,(SP)=?

,栈顶字节[SP]=?

,栈顶第二字节[SP+1]=?

PUSHBX;

POPAX;

(AX)=1234H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H

(AX)=1234H,(BX)=5678H,(SP)=0FFCH,栈顶字节[SP]=78H,栈顶第二字节[SP+1]=56H

(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节[SP]=34H,栈顶第二字节[SP+1]=12H

6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题。

(1)计算YY←A+B*C,其中A、B、C都是无符号数;

(2)计算(AA+BB)/(C-D),商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;

(3)计算YY←(A-B)*C,其中A、B、C都是未组合BCD码。

(1)MOVAL,B

MULC

ADDAL,A

ADCAH,0

MOVYY,AX

(2)MOVAX,AA

ADDAX,BB

MOVBL,C

SUBBL,D

IDIVBL

MOVX,AL

MOVY,AH

(3)MOVAL,A

SUBAL,B

AAS

AAM

MOVYY,AX

7、利用移位指令编写程序段,实现以下运算。

(1)计算AX←AX*10,其中AX为无符号数;

(2)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)*2。

(3)32位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算(DX,AX)←(DX,AX)/2。

(1)SHLAX,1

MOVBX,AX

SHLAX,1

ADDAX,BX

(2)SALAX,1

RCLDX,1

(3)SARDX,1

RCRAX,1

8、指出以下指令执行后,标志寄存器OF、SF、ZF、AF、PF、CF的状态。

(1)(AL)=0FFH,(BL)=20H,执行指令:

ADDAL,BL

(2)(AL)=01H,(BL)=02H,执行指令:

CMPAL,BL

(3)(AL)=0FFH,执行指令:

INCAL

(4)(AL)=0,执行指令:

DECAL

(5)(AL)=0F0H,(BL)=04H,执行指令:

IMULBL

(6)(AX)=1F0H,(BL)=08H,执行指令:

DIVBL

(7)(AL)=12H,(BL)=34H,执行指令:

TESTAL,BL

(8)(AL)=98H,执行指令:

SALAL,1

OF

SF

ZF

AF

PF

CF

(1)

(2)

(3)

×

(4)

(5)

(6)

(7)

(8)

注:

0表示结果为0,1表示结果为1,×

表示结果不变,—表示结果不确定。

9、在8086系统下,编写实现如下功能的程序段:

(1)从地址为80H的端口中读入一个字节;

(2)如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序;

(3)如果该字节最高位为“0”,则转向第

(1)步,继续循环扫描。

参考程序段:

AGAIN:

INAL,80H

TESTAL,80H

JZAGAIN

MOVAL,0FFH

OUT81H,AL

10、我们知道,MOV指令并不能直接修改CS、IP的值,但事实上,我们还可以通过其他方法来达到修改CS、IP的目的。

试编写一个程序段,使该程序段运行后,(CS)=0100H,(IP)=0000H。

方法一、利用段间返回指令RETF:

MOVAX,0100H

PUSHAX;

段基址入栈

MOVAX,0

偏移量入栈

RETF

方法二、利用JMP指令实现段间跳转,假设ADDR为双字变量:

MOVWORDPTRADDR,0;

WORDPTRADDR←偏移量

MOVWORDPTRADDR+2,0100H;

WORDPTRADDR+2←段基址

JMPDWORDPTRADDR

第4章汇编语言程序设计

1、指出以下数据定义伪指令所分配的字节数(8086系统)。

(1)DATA1DB10,?

,‘A’

(2)DATA2DW10DUP(2,3DUP(?

),1)

(3)DATA3DB‘HELLO,WORLD!

’,‘$’

(4)DATA4DWDATA4

(1)3字节;

(2)100字节;

(3)13字节;

(4)2字节。

2、指出以下数据定义伪指令所分配的字节数(80386系统)。

(1)DATA1DF12,34,56

(2)DATA2DFDATA2

(3)DATA3DQ0,10DUP(?

(4)DATA4DT0,1,2

(1)18字节;

(3)6字节;

(3)88字节;

(4)30字节。

3、指出以下指令中哪些是无效的,并说明原因。

(1)ADDRDB$

(2)DATADBF0H,12H

(3)1_DATADW1234H

(4)@VARDWVAR1;

VAR1为一个字节变量

(5)MOVAX,[10-VAR1];

VAR1为一个字变量

(6)MOVBX,[VAR2*2+1];

VAR2为一个字变量

(1)非法,地址计数器$是32位数;

(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;

(3)非法,变量名非法,不能以数字开头;

(4)合法;

(5)非法,地址表达式不能是“常数-地址”;

(6)非法,地址表达式不能出现乘法。

4、假设已定义数据段如下:

DATASEGMENT

ORG100H

DATA1DB10DUP(1,2,3)

DATA2DWDATA1,$

DATAENDS

且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。

请指出以下指令执行后,相应的寄存器中的内容。

(1)MOVAX,WORDPTRDATA1;

(2)MOVBX,DATA2;

(BX)=?

(3)MOVCX,DATA2+2;

(CX)=?

(4)MOVDX,OFFSETDATA2;

(DX)=?

(5)MOVSI,SEGDATA1;

(SI)=?

(6)MOVDI,LENGTHDATA1;

(DI)=?

(7)MOVSP,TYPEDATA1;

(SP)=?

(8)MOVBP,SIZEDATA2;

(BP)=?

(1)(AX)=0201H;

(2)(BX)=0100H;

(3)(CX)=0120H;

(4)(DX)=011EH;

(5)(SI)=1234H;

(6)(DI)=000AH;

(7)(SP)=0001H;

(8)(BP)=0002H。

5、在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”。

参考程序:

MSG1DB'

Inputbinarynumber(ESCtoexit):

'

'

$'

MSG2DB0AH,0DH,'

Inputerror!

0AH,0DH,'

OUTPUTMACROASC;

定义输出一个字符的宏

MOVDL,ASC

MOVAH,2

INT21H

ENDM

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

MAINPROCFAR

PUSHDS

MOVAX,0

PUSHAX

MOVAX,DATA

MOVDS,AX

AGAIN:

LEADX,MSG1

MOVAH,9

INT21H;

提示输入信息

MOVCX,8;

输入8位二进制数

MOVBL,0

L:

MOVAH,1

SHLBL,1

CMPAL,1BH;

ESC键退出

JZDONE

CMPAL,'

0'

输入“0”

JZNEXT

1'

输入“1”

JNZERROR;

输入其他则出错

INCBL

NEXT:

LOOPL

OUTPUT0AH

OUTPUT0DH

PUSHBX

MOVCL,4

SHRBL,CL

CALLTRAN;

显示高4位对应的16进制数

POPBX

ANDBL,0FH

显示低4位对应的16进制数

OUTPUT'

H'

JMPAGAIN

ERROR:

LEADX,MSG2

DONE:

RET

MAINENDP

TRANPROCFAR

CMPBL,0AH

JBBELOW

ADDBL,7

BELOW:

ADDBL,30H

OUTPUTBL

RET

TRANENDP

CODEENDS

ENDMAIN

6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”。

Inputthefirstnumber(ESCtoexit):

MSG2DB'

Inputthesecondnumber(ESCtoexit):

MSG3DB0AH,0DH,'

Inputagain:

MAIN:

MOVAX,DATA

提示输入第一个数

CALLINPUT;

输入过程

LEADX,MSG2

提示输入第二个数

POPAX;

实现两

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1