微机原理答案.docx

上传人:b****3 文档编号:4276360 上传时间:2023-05-06 格式:DOCX 页数:22 大小:34.16KB
下载 相关 举报
微机原理答案.docx_第1页
第1页 / 共22页
微机原理答案.docx_第2页
第2页 / 共22页
微机原理答案.docx_第3页
第3页 / 共22页
微机原理答案.docx_第4页
第4页 / 共22页
微机原理答案.docx_第5页
第5页 / 共22页
微机原理答案.docx_第6页
第6页 / 共22页
微机原理答案.docx_第7页
第7页 / 共22页
微机原理答案.docx_第8页
第8页 / 共22页
微机原理答案.docx_第9页
第9页 / 共22页
微机原理答案.docx_第10页
第10页 / 共22页
微机原理答案.docx_第11页
第11页 / 共22页
微机原理答案.docx_第12页
第12页 / 共22页
微机原理答案.docx_第13页
第13页 / 共22页
微机原理答案.docx_第14页
第14页 / 共22页
微机原理答案.docx_第15页
第15页 / 共22页
微机原理答案.docx_第16页
第16页 / 共22页
微机原理答案.docx_第17页
第17页 / 共22页
微机原理答案.docx_第18页
第18页 / 共22页
微机原理答案.docx_第19页
第19页 / 共22页
微机原理答案.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理答案.docx

《微机原理答案.docx》由会员分享,可在线阅读,更多相关《微机原理答案.docx(22页珍藏版)》请在冰点文库上搜索。

微机原理答案.docx

微机原理答案

第3章8086/8088指令系统与寻址方式习题

3.38086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,

BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。

(1)MOVBX,12;目标操作数为寄存器寻址

(2)MOV[BX],12;目标操作数为寄存器间址PA=10300H

(3)MOVES:

[SI],AX;目标操作数为寄存器间址PA=20200H

(4)MOVVAR,8;目标操作数为存储器直接寻址PA=10600H

(5)MOV[BX][SI],AX;目标操作数为基址加变址寻址PA=10500H

(6)MOV6[BP][SI],AL;目标操作数为相对的基址加变址寻址PA=12306H

(7)MOV[1000H],DX;目标操作数为存储器直接寻址PA=11000H

(8)MOV6[BX],CX;目标操作数为寄存器相对寻址PA=10306H

(9)MOVVAR+5,AX;目标操作数为存储器直接寻址PA=10605H

3.4下面这些指令中哪些是正确的?

那些是错误的?

如果是错误的,请说明原因。

(1)XCHGCS,AX;错,CS不能参与交换

(2)MOV[BX],[1000];错,存储器之不能交换

(3)XCHGBX,IP;错,IP不能参与交换

(4)PUSHCS

(5)POPCS;错,不能将数据弹到CS中

(6)INBX,DX;输入/输出只能通过AL/AX

(7)MOVBYTE[BX],1000;1000大于255,不能装入字节单元

(8)MOVCS,[1000];CS不能作为目标寄存器

(9)MOVBX,OFFSETVAR[SI];OFFSET只能取变量的偏移地址

(10)MOVAX,[SI][DI];SI、DI不能成为基址加变址

(11)MOVCOUNT[BX][SI],ES:

AX;AX是寄存器,不能加段前缀

3.7设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?

当执行PUSHBX指令后,栈顶地址和栈顶2个字节的内容分别是什么?

当前栈顶的地址=2FF00H

当执行PUSHBX指令后,栈顶地址=2FEFEH

(2FEFEH)=57H

(2FEFFH)=34H

3.8设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。

(1)SHRDX,1;DX=3C62HCF=1

(2)SARDX,CL;DX=03C6HCF=0

(3)SHLDX,CL;DX=18A0HCF=1

(4)RORDX,CL;DX=2BC6HCF=0

(5)RCLDX,CL;DX=18B7HCF=1

(6)RCRDH,1;DX=BCC5HCF=0;

3.9设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。

AXCFZFOFSFPF

(1)XORAX,VALUE;134EH00001

(2)ANDAX,VALUE;0821H00001

(3)SUBAX,VALUE;F142H10011

(4)CMPAX,VALUE;0A69H10011

(5)NOTAX;F596HXXXXX

(6)TESTAX,VALUE;0A69H00001

3.10设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。

(1)CX值超过DX转移。

(2)AX未超过BX转移。

(3)DX为0转移。

(4)CX值等于小于DX转移。

(1)CMPCX,DX

JANEXT

(2)CMPAX,BX

JLENEXT

(3)CMPDX,0

JZNEXT

(4)CMPCX,DX

JBENEXT

3.11阅11阅读分析下列指令序列:

ADDAX,BX

JNOL1

JNCL2

SUBAX,BX

JNCL3

JNOL4

JMPL5

若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1~L5中的一个)。

(1)AX=13C6H,BX=80DCH

(2)AX=0B568H,BX=54B7H

(3)AX=42C8H,BX=608DH

(4)AX=0D023H,BX=9FD0H

(5)AX=9FD0H,BX=0D023H

(1)转L1

(2)转L1

(3)转L2

(4)转L5

(5)转L5

第四章汇编语言程序设计习题

4.5画出下列语句中的数据在存储器中的存储情况。

VARBDB34,34H,‘GOOD’,2DUP(1,2DUP(0))

VARWDW5678H,‘CD’,$+2,2DUP(100)

VARCEQU12

22H

34H

‘G’

‘O’

‘O’

‘D’

1

0

0

1

0

0

78H

56H

‘D’

‘C’

12H

00H

64H

00

64H

VARB

 

VARW

 

4.6按下列要求,写出各数据定义语句。

(1)DB1为10H个重复的字节数据序列:

1,2,5个3,4。

(2)DB2为字符串‘STUDENTS’

(3)DB3为十六进制数序列:

12H,ABCDH

(4)用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。

DB1DB16DUP(1,2,5DUP(3,4))

DB2DB‘STUDENTS’

DB3DW12H,0ABCDH

COUNTEQUDB2-DB1

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

PREPDB?

TABADW5DUP(?

TABBDB‘NEXT’

TABCDD12345678H

(1)MOVAX,TYPEPREP;AX=1

(2)MOVAX,TYPETABA;AX=2

(3)MOVAX,LENGTHTABA;AX=5

(4)MOVAX,SIZETABA;AX=10

(5)MOVAX,LENGTHTABB;AX=1

(6)MOVDX,SIZETABC;AX=4

4.10若自STRING单元开始存放有一个字符串(以字符‘$’结束);

(1)编程统计该字符串长度(不包含$字符,并假设长度为两字节)。

(2)把字符串长度放在STRING单元,把整个字符串往下移两个单元。

程序段为:

(1)MOVSI,OFFSETSTRING

XORBX,BX

CONT:

MOVAL,[SI]

CMPAL,‘$’

JZNEXT

INCBX

INCSI

JMPCONT

NEXT:

MOVAH,4CH

INT21H

(2)STRINGDB‘………….$’

COUNTEQU$-STRING

MOVSI,OFFSETSTRING

MOVCX,COUNT

ADDSI,CX

CONT:

DECSI

MOVAL,[SI]

MOV[SI+2],AL]

LOOPCONT

MOVCX,COUNT

MOVSTRING,CX

MOVAH,4CH

INT21H

4.11将字符串STRING中的‘&’字符用空格代替,字符串STRING“ThedataisFEB&03”。

程序为:

DATASEGMENT

STRINGDB‘ThedataisFEB&03’

COUNTEQU$-STRING

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETSTRING

MOVCX,COUNT

MOVAL,‘$’

CONT:

CMPAL,[SI]

JNZNEXT

MOVBYTEPTR[SI],‘’

NEXT:

INCSI

LOOPCONT

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

4.16键盘输入十个学生的成绩,试编制一个程序统计69~69分,70~79分,80~89分,90~99分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。

程序为:

DATASEGMENT

BUFDB10DUP(?

S6DB?

S7DB?

S8DB?

S9DB?

S10DB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETS6

XORAL,AL

MOVCX,0504H

CONT:

MOV[SI],AL

INCSI

LOOPCONT

MOVCX,10

MOVSI,OFFSETBUF

CONT1:

MOVAH,1

INT21H

SHLAL,CL

MOVBL,AL

MOVAH,1

INT21H

SUBAL,30H

ORAL,BL

MOV[SI],AL

CMPAL,70H

JAENEXT1

INCBYTEPTRS6

NEXT1:

CMPAL,80H

JAENEXT2

INCBYTEPTRS7

NEXT2:

CMPAL,90H

JAENEXT3

INCBYTEPTRS8

NEXT3:

CMPAL,99H

JANEXT4

INCBYTEPTRS9

JMPNEXT5

NEXT4;INCBYTEPTRS10

NEXT5:

INCSI

LOOPCONT1

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

第7章基本输入/输出接口习题

7.4现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。

试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:

2000H开始的内存中。

程序段为:

MOVAX,2000H

MOVDS,AX

MOVSI,2000H

MOVCX,100

CONT:

MOVDX,0FFE2H

CONT1:

INAL,DX

TESTAL,01

JZCONT1

MOVDX,0FFE0H

INAL,DX

MOV[SI],AL

INCSI

LOOPCONT

MOVAH,4CH

INT21H

7.5硬件如图7.5所示,试编程实现:

S0控制8个发光二极管1亮7暗,S1控制8个8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定时间间隔循环向左移动,S3控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。

程序段为:

(省略伪指令)

BUF1DB01H

BUF2DB80H

MOVDX,200H

AGAIN:

INAL,DX

XORBL,BL

MOVCX,8

CONT:

RORAL,1

JNCNEXT

INCBL

NEXT:

LOOPCONT

CMPBL,2

JAEEXIT

CMPAL,0FEH

JZ1L7A

CMPAL,0FD

JZ1A7L

CMPAL,0FBH

JZZSHL

CMPAL,0F7H

JZYSHR

1L7A:

MOVAL,80H

OUTDX,AL

JMPAGAIN

7A7L:

MOVAL,7F

OUTDX,AL

JMPAGAIN

ZSHL:

MOVAL,BUF1

ROLAL,1

MOVBUF1,AL

OUTDX,AL

CALLD500MS

JMPAGAIN

YSHR:

MOVAL,BUF2

RORAL,1

MOVBUF1,AL

OUTDX,AL

CALLD500MS

JMPAGAIN

EXIT:

MOVAH,4CH

INT21H

 

第8章中断习题

8.2已知中断向量表表中地址0020H~0023H的单元中依次是40H,00H,00H,01H,

并知INT08H指令本身所在的地址为9000H:

00A0H。

若SP=0100H,SS=0300H,标志寄存器内容为0240H,试指出在执行INT08H指令,刚进入它的中断服务程序时,SP,SS,IP,CS和堆栈顶上三个字的内容(用图表示)。

执行后SS=0300HSP=00FAH

CS=0100HIP=0040H,堆栈顶上三个字的内容如下所示:

栈区

A2H

00H

00H

90H

40H

02H

XX

 

00FAH

00FCH

执行后:

0300H:

00FEH

初始:

0300H:

01000H

8.3某一用户中断源的中断类型号为40H,其中断服务程序名为INTR40,请用两种不同的方法设置它的中断向量。

方法一:

MOVAX,0

MOVDS,AX

MOVAX,OFFSETINTR40

MOV[00C0H],AX

MOVAX,SEGINTR40

MOV[00C2H],AX

方法二:

MOVAX,0

MOVES,AX

MOVDI,40H*4

CLD

MOVAX,OFFSETINTR40

STOSW

MOVAX,SEGINTR40

STOSW

8.5某一8086CPU系统中,采用一片8259A进行中断管理。

设8259A工作在全嵌套方式,发送EIO命令结束中断,边沿触发方式,IR0对应的中断向量号为90H,8259A在系统中的端口地址为FFDCH(A0=0)和FFDDH(A0=1),试编写8259A的初始化程序段。

初试化程序段为:

MOVDX,0FFDCH

MOVAL,13H

OUTDX,AL

INCDX

INCDX

MOVAL,90H

OUTDX,AL

MOVAL,01

OUTDX,AL

 

第9章可编程接口芯片及应用习题

9.1试按如下要求分别编写初始化程序,已知计数器0~2和控制字寄存器的端口地址依次为204H~207H。

(1)使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。

(2)使计数器0工作在方式1,按BCD码计数,计数值为3000。

(3)使计数器2工作在方式2,按二进制计数,计数值为02F0H。

初始化程序为:

MOVDX,207H

MOVAL,50H

OUTDX,AL

MOVDX,205H

MOVAL,80H

OUTDX,AL

MOVDX,207H

MOVAL,23H

OUTDX,AL

MOVDX,204H

MOVAL,30H

OUTDX,AL

MOVDX,207H

MOVAL,0B4H

OUTDX,AL

MOVDX,206H

MOVAL,0F0H

OUTDX,AL

MOVAL,02

OUTDX,AL

9.2硬件如题9.2图,利用PC内部8253定时器0,并用中断方式实现每隔1s使发光二极管亮暗交替显示。

(PC内部8253输入时钟频率为1.1932MHz,8253定时器0端口地址为40H,控制寄存器端口地址为43H。

Y0为350H)。

定时器计数值=1.1932MHz÷5=32864=83D5H

软件计数值:

50

程序为:

(硬件图见教材P345题9.2图)

MOVAL,34H

OUT43H,AL

MOVAL,0D5H

OUT40H,AL

MOVAL,83H

OUT40H,AL

MOVBL,50

T0中断服务程序为:

DECBL

JNZEXIT1

MOVBL,50

MOVAL,BUF

NOTAL

MOVBUF,AL

MOVDX,350H

OUTDX,AL

EXIT1:

MOVAL,20H

OUT20H,AL;(设8259A的端口地址为20H,21H)

IRET

9.3硬件如题9.3图,8253采用方式0,BCD码计数方式,初始值为1000,每按一次按钮S,计数器值减1。

试编程实现显示8253当前计数值,直至计数值为0。

8253端口地址范围为80H~83H。

(略。

在何处显示---屏幕/LED/液晶?

9.4图9.4为一简化的键盘/数码管显示接口电路,假设端口线a’~h’及1、2脚送“1”电平,可使显示点亮并能实现扫描,试问U1、U2及数码显示器的选用。

(1)U1为(同相驱动器/反相驱动器)。

(2)U2为(同相驱动器/反相驱动器)。

(3)数码显示器为(共阴/共阳)数码管。

(4)若A键闭合,则端口线3,4的电平为。

图9.4见教材P346

(1)选用同相驱动器

(2)选用反相驱动器

(3)选用共阴数码管

(4)若A键闭合,则端口线3,4的电平为0,1

9.5硬件如题9.5图,试编程实现循环检测S0、S1,当S0按下,数码管显示0,当S1按下,数码管显示1,S0、S1同时按下,则结束程序。

8255的端口地址范围为80H83H。

程序为:

MOVAL,82H

OUT83H,AL

AGAIN:

INAL,81H

TESTAL,03

JZEXIT

TESTAL,01

JZNEXT

MOVAL,3FH

OUT80H,AL

JMPAGAIN

NEXT:

TESTAL,02

JZNEXT1

MOVAL,06

OUT80H,AL

JMPAGAIN

NEXT1:

MOVAL,00

OUT80H,AL

JMPAGAIN

EXIT:

MOVAH,4CH

INT21H

 

第10章串行通信习题

10.6设异步传输时,每个字符对应一个起始位,7个信息位,1个奇偶校验位和一个停止位,如果波特率为9600,每秒能传输的最大字符数为多少个?

字符数=9600位/秒÷10位/字符=960(字符/秒)

10.13要求8251A工作于异步方式,波特率系数为16,字符长度为7位,奇校验,2个停止位。

工作状态要求:

复位出错标志,使请求发送信号RTS有效,使数据终端准备好信号DTR有效,发送允许TxEN有效,接受允许RxE有效。

设8251A的两个端口地址分别为0C0H和0C2H,试完成初始化编程。

初始化程序为:

MOVAL,11011010B(DAH)

OUT0C2H,AL

MOVAL,00110111B(37H)

OUT0C2H,AL

第11章模数、数模转换习题

11.3某8086系统中,A/D转换器ADC0809只使用一个模拟量输入通道,试设计其接口电路,并编写子程序。

子程序的功能是启动A/D转换,并以查询方式读入一个采样数据放在寄存器DL中。

设所设计的A/D转换器接口电路如下:

采样程序为:

CYSUBRPROC

OUT50H,AL

NOP

NOP

WAIT1:

INAL,51H

TESTAL,01

JZWAIT1

INAL,50H

MOVDL,AL

RET

CYSUBRENDP

11.4某8086系统中,由ADC0809构成A/D转换器,通过8255与CPU接口,如题11.4图所示。

试编写程序,以查询的方式巡回采样8个模拟量输入通道,每个通道16次。

采样数据存放在内存中。

题11.4图

程序段为:

MOVAL,10000001B(81H)

MOVDX,0FFDBH

OUTDX,AL

LOP0:

MOVDI,OFFSETBUF

MOVBL,0

LOP1:

MOVCX,16

MOVAL,BL

MOVDX,0FFD8

OUTDX,AL

CONT:

MOVDX,0FFCAH

MOVAL,0C0H

OUTDX,AL

NOP

NOP

LPO2:

INAL,DX

TESTAL,01

JZLOP2

DECDX

INAL,DX

MOV[DI],AL

INCDI

LOOPCONT

INCBL

CMPBL,8

JNZLOP1

JMPLOP0

 

Welcome!

!

!

欢迎您的下载,

资料仅供参考!

 

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2