微机原理实验42603Word格式.docx

上传人:b****1 文档编号:15399975 上传时间:2022-10-30 格式:DOCX 页数:50 大小:599.26KB
下载 相关 举报
微机原理实验42603Word格式.docx_第1页
第1页 / 共50页
微机原理实验42603Word格式.docx_第2页
第2页 / 共50页
微机原理实验42603Word格式.docx_第3页
第3页 / 共50页
微机原理实验42603Word格式.docx_第4页
第4页 / 共50页
微机原理实验42603Word格式.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

微机原理实验42603Word格式.docx

《微机原理实验42603Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验42603Word格式.docx(50页珍藏版)》请在冰豆网上搜索。

微机原理实验42603Word格式.docx

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,OFFSETMES

MOVAH,09H

INT21H

MOVDI,OFFSETSD

MOVAL,DS:

[DI]

ANDAL,0F0H

SHRAL,4

CMPAL,0AH

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL

MOVAH,02H

ANDAL,0FH

JBC3

C3:

MOVAX,4C00H

CODEENDS

ENDSTART

实验二数据传送实验

三、实验内容

将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上

1.试验程序

MSRDB"

HELLO,WORLD!

$"

LENEQU$-MSR

DDATAENDS

EXDASEGMENT

MSDDBLENDUP(?

EXDAENDS

MYSTACKSEGMENTSTACK

DW20DUP(?

MYSTACKENDS

DDATA,ES:

EXDA

MOVAX,DDATA

MOVAX,EXDA

MOVES,AX

MOVSI,OFFSETMSR

MOVDI,OFFSETMSD

MOVCX,LEN

NEXT:

MOVAL,[SI]

MOVES:

[DI],AL

INCSI

INCDI

DECCX

JNZNEXT

PUSHES

POPDS

MOVDX,OFFSETMSD

MOVAH,9

MOVBX,0

MOVAL,MSR[BX]

MSD[BX],AL

INCBX

LOOPNEXT

2.实验结果

实验三数码转换程序实验

1.将ASCII码表示的十进制数转换为二进制数

1.流程图

DATASSEGMENT

NUMBERDB'

00012'

DATASENDS

CODE,DS:

DATAS

MOVAX,DATAS

MOVDS,AX

MOVCX,4

MOVSI,OFFSETNUMBER

MOVAL,[SI]

SUBAL,30H

MOVAH,00H

MOVBL,10

L1:

MULBL

ADDAL,[SI+1]

JNZL1

MOVCX,8

MOVBL,AL

SHLBL,1

JCONE

MOVDL,30H

JMPEXIT

ONE:

MOVDL,31H

EXIT:

MOVAH,02H

MOVAH,4CH

3.实验结果

2.将十进制数的ASCII码转换为BCD码

本实验要求将键盘输入的一个五位十进制数54321的ASCII码存放入数据区中,转换为BCD码后,并将转换结果按位分别显示于屏幕上。

若输入的不是十进制数的ASCII码,则输出“FF”。

提示:

一字节ASCII码取其低四位即变为BCD码

1.实验流程图

2.实验程序

DATASSEGMENT

BUFDB6

DB?

DB6DUP(?

BUFEDB'

FF$'

ASSUMEDS:

DATAS,CS:

CODE

MOVDX,OFFSETBUF

MOVAH,10

MOVCH,5

MOVSI,DX

L2:

MOVBL,[SI+2]

CMPBL,39H

JAL1

SUBBL,30H

ANDBL,0FH

MOVDH,4

MOVCL,4

;

SHLAL,CL

ROLBL,CL

MOVAH,2

DECDH

DECCH

JNZL2

JMPL3

MOVDX,OFFSETBUFE

MOVAH,9

L3:

3.将十六进制数的ASCII码转换为十进制数

十六位二进制数的值域为0-65535,最大可转换为五位十进制数。

五位十进制数可表示为:

ND=D4×

104+D3×

103+D2×

102+D1×

10+D0

因此,将十六位二进制数转换为五位ASCII码表示的十进制数,就是求D1-D4,并将它们转化为ASCII码。

本实验要求将缓冲区中存放的000CH的ASCII码转换成十进制数,并将转结果显示在屏幕

2.实验程序

BUFDB5

DB5DUP(?

HEXDB4DUP(?

DECIDB5DUP(0),'

S1DB'

16JINZHI:

$'

S2DB0AH,0DH,'

10JINZHI:

MOVAX,DATA

LEADX,S1

LEADX,BUF

MOVSI,2

MOVDI,0

CHECK:

MOVAL,[SI][BUF]

CMPAL,40H

JSNUM

CMPAL,47H

JSCAPITAL

SUBAL,57H

JMPSTORE

NUM:

CAPITAL:

SUBAL,37H

STORE:

MOVHEX[DI],AL

CMPDI,4

JNZCHECK

LEADX,S2

MOVAX,WORDPTRHEX

SHLAL,4

ADDAH,AL

MOVCH,AH

MOVAX,WORDPTR2[HEX]

ADDAL,AH

MOVAH,CH

MOVSI,5

MOVBX,10

MOVDX,0

CMPAX,0

JNSCONV

NEGAX

PUSHAX

PUSHDX

MOVDL,2DH

POPDX

POPAX

CONV:

DECSI

DIVBX

ADDDX,30H

MOVDECI[SI],DL

XORDX,DX

JNZCONV

LEADX,DECI

4.BCD码转换为二进制码

本实验要求将四个二位十进制数的BCD码存放在某一内存单元中,转换出的二进制数码存入其后的内存单元中,转换结束,送屏幕显示。

1.实验流程图

DASCDB3

DB3DUP(?

S1DB0AH,0AH,0DH,'

10JINZHIMA:

BCDMA:

S3DB0AH,0DH,'

2JINZHIMA:

STODB8DUP(?

MOVSI,4

LOOPER:

CALLWHOLE

JNZLOOPER

WHOLE:

LEADX,DASC

MOVAX,WORDPTR2[DASC]

SUBAX,3030H

MOV[DI][STO],AL

MOVCH,2

PRE1:

MOVDX,30H

ROLAL,1

JNCDISP1

ADDDX,01H

DISP1:

MOVAH,02

DECCL

JNZPRE1

MOVDL,20H

LEADX,S3

MOVAL,[DI][STO]

MOVCL,10

MULCL

ADDAL,BL

MO

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

当前位置:首页 > 求职职场 > 职业规划

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

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