微机原理期末考试复习课案.docx

上传人:b****4 文档编号:6213304 上传时间:2023-05-09 格式:DOCX 页数:15 大小:18.72KB
下载 相关 举报
微机原理期末考试复习课案.docx_第1页
第1页 / 共15页
微机原理期末考试复习课案.docx_第2页
第2页 / 共15页
微机原理期末考试复习课案.docx_第3页
第3页 / 共15页
微机原理期末考试复习课案.docx_第4页
第4页 / 共15页
微机原理期末考试复习课案.docx_第5页
第5页 / 共15页
微机原理期末考试复习课案.docx_第6页
第6页 / 共15页
微机原理期末考试复习课案.docx_第7页
第7页 / 共15页
微机原理期末考试复习课案.docx_第8页
第8页 / 共15页
微机原理期末考试复习课案.docx_第9页
第9页 / 共15页
微机原理期末考试复习课案.docx_第10页
第10页 / 共15页
微机原理期末考试复习课案.docx_第11页
第11页 / 共15页
微机原理期末考试复习课案.docx_第12页
第12页 / 共15页
微机原理期末考试复习课案.docx_第13页
第13页 / 共15页
微机原理期末考试复习课案.docx_第14页
第14页 / 共15页
微机原理期末考试复习课案.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理期末考试复习课案.docx

《微机原理期末考试复习课案.docx》由会员分享,可在线阅读,更多相关《微机原理期末考试复习课案.docx(15页珍藏版)》请在冰点文库上搜索。

微机原理期末考试复习课案.docx

微机原理期末考试复习课案

1、统计出某数组中相邻两数之间符号变化的次数

DATASEGMENT

ARRAYDB20DUP(?

NUMDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTUP:

LEASI,ARRAY;

MOVAL,[SI]

MOVBL,0

MOVCX,19

AGAIN:

INCSI

XORAL,[SI]

JNSNEXT

INCBL

NEXT:

MOVAL,[SI]

LOOPAGAIN

MOVNUM,BL

MOVAH,4CH

INT21H

CODEENDS

ENDSTARTUP

2、乘法指令实现32位二进制数与16位二进制数相乘

MODELSMALL

.8086

.DATA

N1DW1234H

N2DW5678H

N3DW4444H

M1DW0

M2DW0

M3DW0

CODE

.STARTUP

MOVAX,N2

MULN3

MOVM3,AX

MOVM2,DX

MOVAX,N3

MULN1

ADDM2,AX

ADCM1,DX

.EXIT

END

3、设有3个自变量的变量名及其内容如下:

VAR13C46H,VAR2F678H,VAR30059H

设计一个数据段定义这三个变量及其地址表变量DDRTABL

DATASEGMENT

VAR1DW3C46H

VAR2DWF678H

VAR3DW0059H

ADDRTABL

DDVAR1

DDVAR2

DDVAR3

DATAENDS

4、设有一个符号数组,共M个,求其中最大的数,如需要求绝对值最大应如何修改,如为无符号数,程序如何修改。

DATASEGMENT

MEQU10

DATDWMDUP(?

MAXDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARUP:

MOVAX,DAT

MOVMAX,AX

CLD

LEASI,DAT

MOVCX,M

L1:

LODSW

CMPAX,MAX

JNGLAB

MOVMAX,AX

LAB:

LOOPL1

MOVAH,4CH

INT21H

CODEENDS

ENDSTARTUP

绝对值修改:

需要在LODSW插入

ANDAX,AX

JNSLAB1

NEGAX

LAB1:

CMPAX,MAX

程序初始化时MAX应送入0

无符号数程序修改:

判别条件CMPAX,MAX

JNGLAB

修改为CMPAX,MAX

JBELAB

5、编制一个程序将20个字节的数组分为正数和负数组,并计算两个数组中数据的个数

DATASEGMENT

DATDB20DUP(?

PDATDB20DUP(?

PDATDB?

PLENDB?

NDATDB20DUP(?

NLENDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTUP:

XORBX,BX

LEASI,DAT

XORDI,DI

CLD

MOVCX,20

LOOP0:

LODSB

CMPAL,0

JGELOOP1

MOVNDAT[BX],AL

INCBX

JMPLAB

LOOP1:

MOVPDAT[DI],AL

INCDI

LAB:

DECCX

JNZLOOP0

MOVPLEN,DI

MOVNLEN,BX

MOVAH,4CH

INT21H

CODEENDS

ENDSTARTUP

6、把从A开始的8个字节单元内容依次和从B开始的8个相应的字节单元内容互换。

DATASEGMENT

ADB'ABCDEFGH'

BDB'12345678'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,A

LEADI,B

MOVCX,8

LP:

MOVAL,[SI]

XCHGAL,[DI]

MOV[SI],AL

INCSI

INCDI

LOOPLP

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

7、计算BUF开始的数组中的100个元素中非零元素的个数,并将其存入COUNT单元,补全指令

BUFDB100DUP(?

COUNTDB0

..............

STARTUP:

MOVAX,DATA

MOVDS,AX

LEASI,

(1)________

MOVCX,

(2)______

CON:

MOVAL,[SI]

CMPAL,(3)_______

.JZNEXT

INC(4)_____

NEXT:

INCSI

LOOP(5)______

HLT

答案:

BUF1000COUNTCON

8、程序执行后寄存器的值:

MOVAX,01H

MOVBX,02H

PUSHBX

PUSHAX

POPBX执行后BX=

(1)___

POPAX执行后AX=

(1)____

MOVAX,3F5FH执行后AL=(3)______

MOVCX,4

RORAL,CL执行后AL=(4)____

ANDAL,0FH执行后AL=(5)_______

答案:

01H02H5FH0F5H05H

9、分支程序设计实验

(1)显示AL中两位十六进制数程序:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAL,3EH

MOVBL,AL

MOVDL,AL

MOVCL,4

SHRDL,CL

CMPDL,9

JBENEXT1

ADDDL,7

NEXT1:

ADDDL,30H

MOVAH,2

INT21H

MOVDL,BL

ANDDL,0FH

CMPDL,9

JBENEXT2

ADDDL,7

NEXT2:

ADDDL,30H

MOVAH,2

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

(2)显示键入字符

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAH,1

INT21H

CMPAL,0DH

JZDONE

CMPal,'0'

JBnext

CMPAL,'9'

JACHRUP

MOVDL,AL

MOVAH,2

INT21H

JMPSTART

CHRUP:

CMPAL,41H

JBNEXT

CMPAL,5AH

JACHRDN

DISPC:

MOVDL,'C'

MOVAH,2

INT21H

NEXT:

JMPSTART

CHRDN:

CMPAL,61H

JBNEXT

CMPAL,7AH

JANEXT

JMPDISPC

DONE:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

10、实验四:

偶校验程序

DSEGSEGMENT

STRNDB'ABCDEfghijkLMNOPQuvw','$'

NDB?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

LEASI,STRN

MOVDL,0

AGAIN:

MOVAL,[SI]

CMPAL,'$'

JEDONE

TESTAL,0FFH

JPENEXT

ORAL,80H

MOV[SI],AL

INCDL

NEXT:

INCSI

JMPAGAIN

DONE:

MOVN,DL

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

(2)加法程序

CODESEGMENT

ASSUMECS:

CODE,DS:

CODE

START:

MOVAX,CS

MOVDS,AX

LEASI,DAT1

LEADI,DAT2

LEABX,DAT3

MOVCX,10

XORAL,AL

AGAIN:

MOVAL,[SI]

ADCAL,[DI]

MOV[BX],AL

INCSI

INCDI

INCBX

LOOPAGAIN

MOVAH,4CH

INT21H

DAT1DB70H,80H,90H,0A0H,0A1H,0A2H,0A3H

DB74H,65H,56H

DAT2DB45H,67H,89H,1AH,2BH,3CH

  DB4DH,5EH,6FH,04H

DAT3DB10DUP(?

CODEENDS

ENDSTART

12、设有两个等字长,字节型字符串,试编写一程序,比较他们是否完全相同,如相同则讲字符Y送入AL中,否则将字符N送入AL中

DATASEGMENT

STRING1DB'ASdAS'

STRING2DB'ASASd'

DATAENS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

STARTUP:

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,STRING1

LEADI,STRING2

MOVCX,5

REPZCMPSBSTRING1,STRING2

JNZLABNE

MOVAL,'Y'

MPEXIT

LABNE:

MOVAL,'N'

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTARTUP

 

11、填空题:

1、输入输出指令间接寻址必须通过DX寄存器

2、20根地址线最大内存容量是220

3、标志寄存器有9位标志位,其中3位控制标志位,6位状态标志位

4、BIU和EU两个单元并行工作在CPU中

5、SP和BP是指针寄存器,SP指示堆栈段段顶的偏移地址

6、零标志位ZF=1时,结果全为0

7、对于5片8259A形成的级联共有36级中断

8、debug跟踪执行命令是t命令

9、中断矢量表存放在存储器最低位

10、存储器是分段的,每段最大长度是64KB

11、段内偏移地址从0000到FFFFH

12、8259AA0与地址总线A1相连

13、取指令时,段地址由CS寄存器提供,偏移地址由IP寄存器提供

14、16位有符号二进制补码范围为-32768~32767

15、8086可访问偶数存储体的选择信号是A0

16、中断矢量表可以容纳256个中断向量,每个中断向量有4个字节

17、DOS功能调用功能号在AH寄存器里面

18、条件转移指令多路分支,输入5路分支需要3条件转移指令

8、大题:

若8086系统中采用单片8259A作为外部可屏蔽中断的优先级管理,正常全嵌套方式,边缘触发,非缓冲连接,非自动终端结束,端口地址为20H和21H,其中,某中断源的中断类型码为4AH,其中断服务子程序名为SUBROUTINE,且已知其地址为2000.3A40H

(1)请问本题中的中断源应与8259A的哪个IR输入端相连?

其中断矢量地址是多少,矢量区对应的4个单元内容是什么?

答:

与IR2相连,地址为0000.0128H,矢量对应的4个单元内容依次为40H,3AH,00H,20H

(2)请为8259A设置正确的初始化命令,并编写程序:

ICW1=00010011,单片,边缘触发,必须设置ICW4;ICW2=48H,终端类型码基值为48H;无ICW3,单片8259A系统,无需设置ICW3;ICW4=00000001,正常全嵌套方式,非缓冲连接,非自动中断结束,8086CPU,初始化程序如下:

MOVAL,13H

OUT20H,AL

MOVAL,48H

OUT21H,AL

MOVAL,01H

OUT21H,AL

(3)请编写程序片段,设置该中断源的中断矢量

MOVAX,0

MOVES,AX

MOVDI,4AH*4

MOVAX,OFFSETSUBROUTINE

CLD

STOSW

MOVAX,SEGSUBROUTINE

STOSW

13可屏蔽中断响应和处理过程:

(1)中断允许标志IF置1,没有异常,没有非屏蔽中断NMI=0,没有总线请求,CPU响应可屏蔽中断请求;

(2)外部设备向8259A发出中断请求信号,经过8259A处理后得到相应的中断矢量号,并同时向CPU申请中断INT=1

(3)如果指令不是HLT或者WAIT,则CPU执行完当前指令后便向8259A发出中断信号INTA=0,表明CPU响应该可屏蔽中断请求

若指令是HLT,则中断请求信号INTR的产生使处理器退出暂停状态,响应中断,进入中断处理程序

若指令是WAIT。

且TSET引脚加入低电平信号,则中断请求信号INTR产生后,使处理器脱离等待状态,进入中断处理程序

处理过程包括四部分:

保护现场、中断服务程序、恢复现场、中断返回。

14,8259A的中断处理过程:

(1)当中断请求输入线IR0~IR7中有一条或多条变高时,则中断请求寄存器IRR的相应位置“1”。

(2)若中断请求线中至少有一条是中断允许的,则8259A由INT引脚向CPU发出中断请求信号。

(3)如CPU是处于开中断状态,则在当前指令执行完后,用信号作为响应。

(4)8259A在接收到CPU的信号后,使最高优先级的ISR位置“1”,而相应的IRR位清“0”。

但在该中断响应周期中,8259A并不向系统总线送任何信息。

(5)CPU(8086/8088和80X86)输出第二个信号,启动第二个中断响应周期。

在此周期中,8259A向数据总线输送一个8位的中断类型号(也叫指针或向量号);CPU读取此类型号后将它乘以4(左移2位),即可从中断服务程序向量表(即入口地址表)中取出中断服务程序的入口地址,包括段地址和段内偏移地址。

据此CPU便可转入中断服务程序。

(6)如8259A工作在AEOI(AutomaticEndOfInterrupt)模式,则在第二个脉冲信号结束时,将使被响应的中断源在ISR中的对应位清“0”;否则,直至中断服务程序结束,发出EOI命令,才使ISR中的对应位清“0”。

 

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

当前位置:首页 > 自然科学 > 物理

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

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