微机原理经典习题.docx

上传人:b****1 文档编号:1236855 上传时间:2023-04-30 格式:DOCX 页数:11 大小:27.96KB
下载 相关 举报
微机原理经典习题.docx_第1页
第1页 / 共11页
微机原理经典习题.docx_第2页
第2页 / 共11页
微机原理经典习题.docx_第3页
第3页 / 共11页
微机原理经典习题.docx_第4页
第4页 / 共11页
微机原理经典习题.docx_第5页
第5页 / 共11页
微机原理经典习题.docx_第6页
第6页 / 共11页
微机原理经典习题.docx_第7页
第7页 / 共11页
微机原理经典习题.docx_第8页
第8页 / 共11页
微机原理经典习题.docx_第9页
第9页 / 共11页
微机原理经典习题.docx_第10页
第10页 / 共11页
微机原理经典习题.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理经典习题.docx

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

微机原理经典习题.docx

微机原理经典习题

1、当WR=1,RD=0,M/IO=1时,表示CPU当前正在进行读存储器操作。

2、已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,

DS段有一操作数,其偏移地址=0204H,

1)画出各段在内存中的分布

2)指出各段首地CS:

10550HDS:

250A0H

ES:

2EF00HSS:

8FF00H

3)该操作数的物理地址=?

解:

各段分布及段首址见右图所示。

操作数的物理地址为:

250AH×10H+0204H=252A4H

3、若已知(SS)=1000H、(SP)=2000H;则堆栈段的段首地址=?

1000H栈顶地址=?

12000H

若现在把1234H送入堆栈,则它所在的存储单元地址=?

1988H

若该段最后一个单元地址为2FFFH,则栈底地址=?

12FFFH

4、MOVAX,[3102H]

AL=(3102H),AH=(3103H)

如果(DS)=2000H,(23012H)=CDH,(23013H)=ABH;指令执行后,AX=?

ABCDH

5、MOVAX,[SI]

若(DS)=6000H,(SI)=1200H,(61200H)=44H,(61201H)=33H

则指令执行后,(AX)=3344H。

7、保留AL中低4位,高4位清0。

ANDAL,0FH

AL中有字符’a’~’z’,将其转换成大写。

ANDAL,01011111B

8、把AH和AL中的非压缩BCD码组合成压缩的BCD码,放到AL中。

MOVCL,4

SHLAH,CL

ORAL,AH

9、把AX寄存器清零。

①MOVAX,0②XORAX,AX

③ANDAX,0④SUBAX,AX

10、把AL中的数x乘10

SALAL,1;2x

MOVAH,AL

SALAL,1;4x

SALAL,1;8x

ADDAL,AH;8x+2x=10x

11、(BX)=84F0H,把(BX)中的16位数每4位压入堆栈

MOVCH,4;循环次数

MOVCL,4;移位次数

NEXT:

ROLBX,CL

MOVAX,BX

ANDAX,0FH

PUSHAX

DECCH

JNZNEXT

12、用串传送指令实现200个字节的数据传送:

LEASI,MEM1

LEADI,MEM2

MOVCX,200

CLD

REPMOVSB

13、把从A000H开始的2KB内存单元清零。

程序段如下:

MOVDI,0A000H

MOVAX,0

MOVCX,1024

CLD

REPSTOSW

14、从一个字符串中查找一个指定的字符

messdb‘COMPUTER’

leadi,mess

moval,‘T’

movcx,8

cld

repnescasb

15、比较两个字符串,找出不相匹配的地方

leasi,mess1

leadi,mess2

movcx,8

cld

repecmpsb

16、、是双精度数,分别存于DX,AX及BX,CX中,

>时转L1,否则转L2

CMPDX,BX

JGL1

JLL2

CMPAX,CX

JAL1

L2:

……

L1:

……

18、给1A000H开始的256个内存单元均减去1,若发现某个单元减为0则立即退出循环,其后的单元不再减1。

程序段如下:

(逻辑地址为1A00:

0H)

MOVAX,1A00H

MOVDS,AX;1A00H段

MOVDI,-1

MOVCX,256

GOON:

INCDI

DECBYTEPTR[DI]

LOOPNZGOON

HLT

21.说明下面两个定义的不同之处:

DB‘AB’;41H在低字节,42H在高字节

DW‘AB’

22.TABLEDB10DUP(?

BUFFERDWTABLE,$+3

设TABLE的偏移地址为0080H,则汇编后$+3的内容为008fh

23.求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。

MOVAX,[300H]

MOVBX,[302]

SUBAX,BX

JAAA

NEGAX

AA:

MOV[200H],AX

INT20H

24.BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中。

这是一个循环次数已知的程序设计,用计数循环完成。

DATASEGMENT

BUFDB12H,34H,-56H,-98H,096H,68H,56H,80H

N=$-BUF

BUF1DBNDUP(0)

BUF2DBNDUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVDX,DATA

MOVDS,AX

LEASI,BUF

LEADI,BUF1

LEABX,BUF2MOVCX,N

AA:

MOVAL,[SI]

INCSI

CMPAL,0

JGEBB

MOV[BX],AL

INCBX

JMPCC

BB:

MOV[DI],AL

INCDI

CC:

DECCX

JNZAA

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

25.OUT指令将使总线的IOW#信号有效,IN指令将使总线的IOR#信号有效

27.中断步骤:

中断请求、中断判优、中断响应、中断服务

、中断返回

28.中断类型号为23(17H),中断服务程序的入口地址5CH、2340H:

7890H,存放在内存的哪些内容单元?

请用8086汇编语言直接编程,将中断服务程序的入口地址填入中断向量表中。

PUSHES

MOVAX,0000H

MOVES,AX

MOVES:

WORDPTR[5CH],12ACH

MOVES:

WORDPTR[5EH],2010H

POPES

29.

29.中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。

CLI

MOVAX,0

MOVDS,AX

MOVSI,48H*4

MOVAX,OFFSETint48h

MOV[SI],AX

MOVAX,SEGint48h

MOV[SI+2],AX

STI

30.若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,

31.主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H

32.按以下要求初始化8259A,设端口地址为2000H和2001H:

–接口地址为20H和21H;

–中断为上升沿触发;单片8259A;不写ICW4;

–与IR0-IR3对应的中断向量码为08H-0BH;

–IR4-IR7不使用

INIT8259A:

MOVDX,2000H;A0=0,写ICW1

MOVAL,12H;上升沿触发,单片,不写ICW4

OUTDX,AL

MOVDX,2001H;A0=1,写ICW2,OCW1

MOVAL,08H;ICW2

OUTDX,AL

MOVAL,0F0H;OCW1:

屏蔽IR4-IR7

OUTDX,AL

33.8255A口地址40H,A口工作在方式0输出,B口工作在方式1输入,C口的PC5输出为1。

方式字:

10000110B

复位置位字:

00001011B

初始化程序:

MOVAL,10000110B

OUT43H,AL

MOVAL,00001011B

OUT43H,AL

36.8253地址为40H~43H,计数器1、

方式1、计数初值1020H。

MOVAL,72H;方式字

OUT43H,AL

MOVAL,20H;计数低位

OUT41H,AL

MOVAL,10H;计数高位

OUT41H,AL

37.采用8253作定时/计数器,其接口地址为0120H~0123H。

输入8253的时钟频率为2MHz。

计数器0:

每10ms输出1个CLK脉冲宽的负脉冲计数器1:

产生10KHz的连续方波信号

计数器2:

启动计数5ms后OUT输出高电平。

并编写初始化程序。

⏹确定计数初值:

CNT0:

10ms/0.5us=20000

CNT1:

2MHz/10KHz=200

CNT2:

5ms/0.5us=10000

⏹确定控制字:

CNT0:

方式2,16位计数值00110100

CNT1:

方式3,低8位计数值01010110

CNT2:

方式0,16位计数值10110000

CNT0:

MOVDX,0123H

MOVAL,34H

OUTDX,AL

MOVDX,0120H

MOVAX,20000

OUTDX,AL

MOVAL,AH

OUTDX,AL

CNT1:

……

CNT2:

……

例,某外部可屏蔽中断的类型码为0AH,它的中断服务程序的入口地址是2010H:

12ACH,请用8086汇编语言直接编程,将中断服务程序的入口地址填入中断的向量表中。

中断类型码为0AH,中断向量地址=0AH*4=28H,将12ACH送0000H:

0028H,将2010H送0000H:

002AH。

方法一:

PUSHES

MOVAX,0000H

MOVES,AX

MOVES:

WORDPTR[28H],12ACH

MOVES:

WORDPTR[2AH],2010H

POPES

方法二:

PUSHES

MOVAX,0000H

MOVES,AX

MOVDI,0AH*4

MOVAX,12ACH

STOSW

MOVAX,2010H

STOSW

POPES

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

当前位置:首页 > 人文社科 > 法律资料

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

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