微机原理实验42603.docx

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

微机原理实验42603.docx

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

微机原理实验42603.docx

微机原理实验42603

微型计算机原理实验报告

 

学号40953055

姓名海米提。

热合木江

班级测控0902班

 

实验一显示程序实验

一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。

本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。

实验中可使用DOS功能调用(INT21H)。

流程图

2.试验程序

DATASEGMENT

MESDB'Showaashex:

',0AH,0DH,'$'

SDDB'a'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

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

INT21H

MOVAL,DS:

[DI]

ANDAL,0FH

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL

MOVAH,02H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

实验二数据传送实验

三、实验内容

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

1.试验程序

DATASEGMENT

MSRDB"HELLO,WORLD!

$"

LENEQU$-MSR

DDATAENDS

EXDASEGMENT

MSDDBLENDUP(?

EXDAENDS

MYSTACKSEGMENTSTACK

DW20DUP(?

MYSTACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DDATA,ES:

EXDA

START:

MOVAX,DDATA

MOVDS,AX

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

INT21H

MOVAX,4C00H

INT21H

CODEENDS

ENDSTART

MOVBX,0

MOVCX,LEN

NEXT:

MOVAL,MSR[BX]

MOVES:

MSD[BX],AL

INCBX

LOOPNEXT

2.实验结果

实验三数码转换程序实验

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

1.流程图

2.试验程序

 

DATASSEGMENT

NUMBERDB'00012'

DATASENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVCX,4

MOVSI,OFFSETNUMBER

MOVAL,[SI]

SUBAL,30H

MOVAH,00H

MOVBL,10

L1:

MULBL

ADDAL,[SI+1]

SUBAL,30H

INCSI

DECCX

JNZL1

MOVCX,8

MOVBL,AL

NEXT:

SHLBL,1

JCONE

MOVDL,30H

JMPEXIT

ONE:

MOVDL,31H

EXIT:

MOVAH,02H

INT21H

DECCX

JNZNEXT

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.实验结果

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

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

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

提示:

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

1.实验流程图

2.实验程序

DATASSEGMENT

BUFDB6

DB?

DB6DUP(?

BUFEDB'FF$'

DATASENDS

CODESEGMENT

ASSUMEDS:

DATAS,CS:

CODE

START:

MOVAX,DATAS

MOVDS,AX

MOVDX,OFFSETBUF

MOVAH,10

INT21H

MOVCH,5

MOVSI,DX

L2:

MOVBL,[SI+2]

INCSI

CMPBL,39H

JAL1

SUBBL,30H

ANDBL,0FH

MOVDH,4

MOVCL,4

;SHLAL,CL

ROLBL,CL

NEXT:

SHLBL,1

JCONE

MOVDL,30H

JMPEXIT

ONE:

MOVDL,31H

EXIT:

MOVAH,2

INT21H

DECDH

JNZNEXT

DECCH

JNZL2

JMPL3

L1:

MOVDX,OFFSETBUFE

MOVAH,9

INT21H

L3:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.实验结果

 

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

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

五位十进制数可表示为:

ND=D4×104+D3×103+D2×102+D1×10+D0

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

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

1.实验流程图

2.实验程序

DATASEGMENT

BUFDB5

DB?

DB5DUP(?

HEXDB4DUP(?

DECIDB5DUP(0),'$'

S1DB'16JINZHI:

$'

S2DB0AH,0DH,'10JINZHI:

$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,S1

MOVAH,9

INT21H

LEADX,BUF

MOVAH,10

INT21H

MOVSI,2

MOVDI,0

CHECK:

MOVAL,[SI][BUF]

CMPAL,40H

JSNUM

CMPAL,47H

JSCAPITAL

SUBAL,57H

JMPSTORE

NUM:

SUBAL,30H

JMPSTORE

CAPITAL:

SUBAL,37H

JMPSTORE

STORE:

MOVHEX[DI],AL

INCDI

INCSI

CMPDI,4

JNZCHECK

LEADX,S2

MOVAH,9

INT21H

MOVAX,WORDPTRHEX

SHLAL,4

ADDAH,AL

MOVCH,AH

MOVAX,WORDPTR2[HEX]

SHLAL,4

ADDAL,AH

MOVAH,CH

MOVSI,5

MOVBX,10

MOVDX,0

CMPAX,0

JNSCONV

NEGAX

PUSHAX

PUSHDX

MOVDL,2DH

MOVAH,2

INT21H

POPDX

POPAX

CONV:

DECSI

DIVBX

ADDDX,30H

MOVDECI[SI],DL

XORDX,DX

CMPAX,0

JNZCONV

LEADX,DECI

MOVAH,9

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

3.实验结果

 

4.BCD码转换为二进制码

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

1.实验流程图

2.实验程序

DATASEGMENT

DASCDB3

DB?

DB3DUP(?

S1DB0AH,0AH,0DH,'10JINZHIMA:

$'

S2DB0AH,0DH,'BCDMA:

$'

S3DB0AH,0DH,'2JINZHIMA:

$'

STODB8DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDI,0

MOVSI,4

LOOPER:

CALLWHOLE

DECSI

JNZLOOPER

JMPEXIT

WHOLE:

LEADX,S1

MOVAH,9

INT21H

LEADX,DASC

MOVAH,10

INT21H

LEADX,S2

MOVAH,9

INT21H

MOVAX,WORDPTR2[DASC]

SUBAX,3030H

SHLAL,4

ADDAL,AH

MOV[DI][STO],AL

MOVCH,2

MOVCL,4

PRE1:

MOVDX,30H

ROLAL,1

JNCDISP1

ADDDX,01H

DISP1:

PUSHAX

MOVAH,02

INT21H

POPAX

DECCL

JNZPRE1

PUSHAX

MOVDL,20H

MOVAH,2

INT21H

POPAX

DECCH

MOVCL,4

JNZPRE1

LEADX,S3

MOVAH,9

INT21H

MOVAL,[DI][STO]

MOVBL,AL

ANDBL,0FH

SHRAL,4

MOVCL,10

MULCL

ADDAL,BL

INCDI

MOV[DI][STO],AL

INCDI

MO

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

当前位置:首页 > 高等教育 > 法学

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

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