微机原理编程题.docx

上传人:b****6 文档编号:6160890 上传时间:2023-01-04 格式:DOCX 页数:8 大小:15.96KB
下载 相关 举报
微机原理编程题.docx_第1页
第1页 / 共8页
微机原理编程题.docx_第2页
第2页 / 共8页
微机原理编程题.docx_第3页
第3页 / 共8页
微机原理编程题.docx_第4页
第4页 / 共8页
微机原理编程题.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

微机原理编程题.docx

《微机原理编程题.docx》由会员分享,可在线阅读,更多相关《微机原理编程题.docx(8页珍藏版)》请在冰豆网上搜索。

微机原理编程题.docx

微机原理编程题

微机原理编程题

1.分支程序设计

①.编写一段程序,已知BUF1单元中有一带符号字节数据X,BUF2中有一带符号字节数据Y,根据以下函数关系编写程序求Z的值,结果存入RESULT单元。

Z=|X-Y|;

DATASEGMENT

BUF1DB05H

BUF2DB02H

RESULTDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

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;

DATASEGMENT

BUFDB8

RESULTDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

CMPAL,10

JAEGRE

MOVBL,AL

ADDAL,AL

ADDAL,AL

ADDAL,BL

JMPDONE

GRE:

SUBAL,5

DONE:

MOVRESULT,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

③.在内存单元BUF中存放一个带符号字节数据X,假定为-2,试根据以下函数关系编写程序求Y的值,结果存入RESULT单元。

Y=1X>0,0X=0,-1X<0;

DATASEGMENT

BUFDB-2

RESULTDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

CMPAL,0

JGEL1

MOVAL,-1

JMPL3

L1:

JZL2

MOVAL,1

JMPL3

L2:

MOVAL,0

L3:

MOVRESULT,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2.N个数中求最大值、最小值.假定N=10,已知原始数据存放在BUF开始的内存单元中,将结果存入MAX,MIN内存单元中。

DATASEGMENT

BUFDB3,5,7,8,5,3,9,7,13,1

COUNTEQU$-BUF

MAXDB?

MINDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,COUNT-1

MOVAL,BUF

MOVMAX,AL

MOVMIN,AL

LEASI,BUF

AGAIN:

MOVAL,[SI+1]

CMPAL,MIN

JGES1

MOVMIN,AL

S1:

CMPAL,MAX

JLES2

MOVMAX,AL

S2:

INCSI

LOOPAGAIN

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.编写程序求1+2+3+……+N<100时最大的N值,将N值送NUM单元中,同时将1+2+3+……+N的和送到SUM单元中。

DATASEGMENT

NUMDB?

SUMDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,0

MOVBL,0

AGAIN:

INCBL

ADDAL,BL

CMPAL,100

JBAGAIN

SUBAL,BL

DECBL

MOVNUM,BL

MOVSUM,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

4.统计字符,正数,负数,零的个数。

①.若自STRING单元开始存放一个字符串,以'$'结尾,试编写程序,

统计字符串的长度,并将结果存入COUNT单元。

DATASEGMENT

STRINGDB'abcdefg$'

COUNTDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,STRING

MOVCX,0

NEXT:

MOVAL,[SI]

CMPAL,'$'

JZDONE

INCCX

INCSI

JMPNEXT

DONE:

MOVCOUNT,CX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

②.自BUF单元开始存放10个带符号字节数据,将其中的正数、负数和零选出来,并统计其个数,分别存入PLUS、MINUS和ZERO单元中。

DATASEGMENT

BUFDB5,-2,0,-1,4,0,-4,8,0,-7

PLUSDB?

MINUSDB?

ZERODB?

DATAENDS

CODESEGMENT

ASSUMECS:

DATA,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,BUF

MOVCX,10

AGAIN:

MOVAL,[BX]

INCBX

ANDAL,AL

JSM1

JZM2

INCPLUS

JMPNEXT

M1:

INCMINUS

JMPNEXT

M2:

INCZERO

JMPNEXT

NEXT:

LOOPAGAIN

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

5.求压缩BCD码的和。

已知从BUF1和BUF2单元开始,存放两个各为10个字节的BCD数,求这两个数的和,并将结果存入BUF3单元中。

DATASEGMENT

BUF1DB01H,01H,01H,01H,01H,01H,01H,01H,01H,01H

BUF2DB03H,03H,03H,03H,03H,03H,03H,03H,03H,03H

BUF3DB11DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,10

LEASI,BUF1

LEADI,BUF2

LEABX,BUF3

AGAIN:

MOVAL,[SI]

ADCAL,[DI]

DAA

MOV[BX],AL

INCSI

INCDI

INCBX

LOOPAGAIN

ADCAH,0

MOV[BX],AH

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

6.8255编程题:

(课后实验)

8255工作于方式0,此时PA、PB、PC均为可独立输入/输出的并行口。

8255的各寄存器对应的口地址为:

PA口:

200H,PB口:

202H,PC口:

204H,控制口:

206H。

要求8255工作于方式0,PA口设置为输入,PC口设置为输出。

DATASEGMENT

C8255EQU206H

P8255AEQU200H

P8255CEQU204H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVDX,C8255;设置为A口输入,C口输出

MOVAL,90H

OUTDX,AL

BG:

MOVDX,P8255A;将A口状态从C口输出

INAL,DX

MOVDX,P8255C

OUTDX,AL

JMPBG

CODEENDS

ENDSTART

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

当前位置:首页 > 党团工作 > 其它

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

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