微机原理编程题Word格式.docx
《微机原理编程题Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理编程题Word格式.docx(8页珍藏版)》请在冰豆网上搜索。
MOVAL,BUF1
MOVBL,BUF2
SUBAL,BL
JNCGREAT
NEGAL
GREAT:
MOVRESULT,AL
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
②.编写一段程序,已知BUF单元中有一无符号字节数据X,假设为8,根据以下函数关系编写程序求Y的值,结果存入RESULT单元。
Z=5XX<
10,X-5X>
=10;
BUFDB8
MOVAL,BUF
CMPAL,10
JAEGRE
MOVBL,AL
ADDAL,AL
ADDAL,BL
JMPDONE
GRE:
SUBAL,5
DONE:
MOVRESULT,AL
CODEENDS
ENDSTART
③.在内存单元BUF中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y的值,结果存入RESULT单元。
Y=1X>
0,0X=0,-1X<
0;
BUFDB-2
MOVAX,DATA
CMPAL,0
JGEL1
MOVAL,-1
JMPL3
L1:
JZL2
MOVAL,1
L2:
MOVAL,0
L3:
CODEENDS
2.N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内存单元中,将结果存入MAX,MIN内存单元中。
BUFDB3,5,7,8,5,3,9,7,13,1
COUNTEQU$-BUF
MAXDB?
MINDB?
MOVCX,COUNT-1
MOVMAX,AL
MOVMIN,AL
LEASI,BUF
AGAIN:
MOVAL,[SI+1]
CMPAL,MIN
JGES1
S1:
CMPAL,MAX
JLES2
S2:
INCSI
LOOPAGAIN
3.编写程序求1+2+3+……+N<
100时最大的N值,将N值送NUM单元中,同时将1+2+3+……+N的和送到SUM单元中。
NUMDB?
SUMDB?
MOVAL,0
MOVBL,0
INCBL
CMPAL,100
JBAGAIN
DECBL
MOVNUM,BL
MOVSUM,AL
4.统计字符,正数,负数,零的个数。
①.若自STRING单元开始存放一个字符串,以'
$'
结尾,试编写程序,
统计字符串的长度,并将结果存入COUNT单元。
STRINGDB'
abcdefg$'
COUNTDW?
LEASI,STRING
MOVCX,0
NEXT:
MOVAL,[SI]
CMPAL,'
JZDONE
INCCX
JMPNEXT
MOVCOUNT,CX
②.自BUF单元开始存放10个带符号字节数据,将其中的正数、负数和零选出来,并统计其个数,分别存入PLUS、MINUS和ZERO单元中。
BUFDB5,-2,0,-1,4,0,-4,8,0,-7
PLUSDB?
MINUSDB?
ZERODB?
DATA,DS:
MOVCX,10
MOVAL,[BX]
INCBX
ANDAL,AL
JSM1
JZM2
INCPLUS
M1:
INCMINUS
M2:
INCZERO
INT21H
5.求压缩BCD码的和。
已知从BUF1和BUF2单元开始,存放两个各为10个字节的BCD数,求这两个数的和,并将结果存入BUF3单元中。
BUF1DB01H,01H,01H,01H,01H,01H,01H,01H,01H,01H
BUF2DB03H,03H,03H,03H,03H,03H,03H,03H,03H,03H
BUF3DB11DUP(?
)
LEASI,BUF1
LEADI,BUF2
LEABX,BUF3
ADCAL,[DI]
DAA
MOV[BX],AL
INCDI
ADCAH,0
MOV[BX],AH
ENDSTART
6.8255编程题:
(课后实验)
8255工作于方式0,此时PA、PB、PC均为可独立输入/输出的并行口。
8255的各寄存器对应的口地址为:
PA口:
200H,PB口:
202H,PC口:
204H,控制口:
206H。
要求8255工作于方式0,PA口设置为输入,PC口设置为输出。
C8255EQU206H
P8255AEQU200H
P8255CEQU204H
ASSUMECS:
MOVDX,C8255;
设置为A口输入,C口输出
MOVAL,90H
OUTDX,AL
BG:
MOVDX,P8255A;
将A口状态从C口输出
INAL,DX
MOVDX,P8255C
JMPBG