汇编实验报告Word格式.docx

上传人:b****2 文档编号:14113213 上传时间:2022-10-18 格式:DOCX 页数:35 大小:229.79KB
下载 相关 举报
汇编实验报告Word格式.docx_第1页
第1页 / 共35页
汇编实验报告Word格式.docx_第2页
第2页 / 共35页
汇编实验报告Word格式.docx_第3页
第3页 / 共35页
汇编实验报告Word格式.docx_第4页
第4页 / 共35页
汇编实验报告Word格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

汇编实验报告Word格式.docx

《汇编实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《汇编实验报告Word格式.docx(35页珍藏版)》请在冰豆网上搜索。

汇编实验报告Word格式.docx

功能

调用参数

结果

1

键盘输入并回显

AL=输出字符

2

显示单个字符(带Ctrl+Break检查)

DL=输出字符

光标在字符后面

6

显示单个字符(无Ctrl+Break检查)

8

从键盘上读一个字符

AL=字符的ASCII码

9

显示字符串

DS:

DX=串地址,

‘$’为结束字符

光标跟在串后面

4CH

返回DOS系统

AL=返回码

例如,实现键盘输入并回显的完整代码:

MOVAH01H

INT21H

三、实验结果

1.将指定数据区的字符串数据”Letusgo!

”以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示:

2.在屏幕上显示自己的学号姓名信息

四、实验原理

DATASEGMENT

MESDB'

NUMBER:

03099018'

0AH,0DH,'

NAME:

Feng

Xiaokang'

$'

CENTDB'

Letusgo!

'

'

ENTEDB0AH,0DH,'

INFODB'

Origin:

'

ASCIDB'

ASCII:

MSG1DB'

Ifyouwanttoquitpleasepress...q/Q...'

MSG2DB0AH,0DH,'

Char:

$'

RSDB'

ASCII:

SDDB'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA;

存储数据

MOVDS,AX

MOVDX,OFFSETMES;

显示数据

MOVAH,09H

INT21H

MOVDX,OFFSETMSG1

MOVAH,09H

MOVDX,OFFSETCENT

MOVSI,DX

T:

MOVAL,[SI]

CMPAL,'

JZC1

ANDAL,0F0H;

取高4位

MOVCL,4

SHRAL,CL

CMPAL,0AH;

是否是A以上的数

JBA

ADDAL,07H

A:

ADDAL,30H

MOVDL,AL;

showcharacter

MOVAH,02H

INT21H

;

MOVAL,DS:

[SI]

MOVAL,[SI]

ANDAL,0FH;

取低4位

CMPAL,0AH

JBB

ADDAL,07H

B:

ADDAL,30H

MOVDL,AL

INT21H

INCSI

LOOPT

C1:

MOVDX,OFFSETMSG2

MOVAH,01h

INT21h

CMPAL,'

q'

JEexit

Q'

JEexit

MOVSD,AL

MOVDX,OFFSETRS;

showmessage

MOVSI,OFFSETSD

MOVAL,[SI]

JBC2

C2:

ADDAL,30H

MOVAL,DS:

JBC3

C3:

LOOPC1

C:

INT21H

LOP:

MOVAH,08H

INT21H

CMPAL,'

JMPLOP

EXIT:

MOVAX,4C00H;

gobacktodos

CODEENDS

endSTART

五、实验流程图

六、实验总结

这是我学习汇编以来,第一次用汇编写程序,费了我不只一个实验课时,纠结了不只一天。

同样是助记码,真的不懂如何组织的。

郁闷之下,用C写出来发泄一下,才猜想应该跟C的思考方式完全不同。

后来开始研究代码,真的不愧是底层啊,详细到一个字节高低位的安排,如此地考验硬件知识。

实验二数码转换实验

1.掌握不同进制数及编码相互转换的程序设计方法。

2.掌握运算类指令编程及调试方法。

3.掌握循环程序的设计方法。

二、实验设备

PC机一台。

三、实验内容及说明

1.重复从键盘输入不超过5位的十进制数,按回车键结束输入;

2.将该十进制数转换成十六进制数;

结果以16进制数的形式显示在屏幕上;

3.如果输入非数字字符,则报告出错信息,重新输入;

4.直到输入“Q”或‘q’时程序运行结束。

四、实验结果

1.输入3306

2.结果0CEA

3.输入一个较大的数65537

4.显示456A6

5.输入非法值

五、实验原理图

源代码:

NUMBERDB'

No.:

Fengxiaokang'

ERRORDB0AH,0DH,'

ERROR!

PLEASETRYAGAIN!

INPDB0AH,0DH,'

Pleaseinputanumber,youcanexitbyinputing"

q"

or"

Q"

XPDB0AH,0DH,'

CODESEGMENT

DATA

start:

MOVAX,DATA

MOVDX,OFFSETNUMBER

MOVBX,0H

MOVDX,OFFSETINP

input:

MOVAH,01H

INT21H

CMPAL,0DH;

数字输入完毕

JEchange

CMPAL,'

;

退出

JEEXIT

JEEXIT

CMPAL,030h;

非数字

jlerrors

cmpAL,039h

jgerrors

SUBAL,30H;

运算

pushAX

movAX,BX

movDX,0000AH

mulDX

movBX,AX

popAX

addBL,AL

CMPBX,00H

JZZERO

jmpinput

errors:

MOVDX,OFFSETERROR

jmpinput

ZERO:

MOVCL,4

JMPLOOPS

change:

CMPBX,00H

JZERRORS

loops:

MOVDX,BX

ANDDX,0F000H

SHRDX,12

CMPDX,0AH;

JLC2

ADDDX,07H

ADDDX,30H

;

showchArActer

SHLBX,4

LOOPloops

MOVDX,OFFSETXP

JMPINPUT

MOVAX,4C00H

ENDSTART

原理

十进制数可以表示为:

Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i

其中Di代表十进制数1、2、3、…、9、0。

上式可以转换为:

Di*10i=(((Dn*10n+Dn-1)*10+Dn-2)*10+…+D1)*10+D0

由上式可归纳出十进制数转换为二进制数的方法:

从二进制数的最高位Dn开始做乘10加次位的操作。

依此类推,则可求出二进制数结果。

数码转换对应关系

十六进制

BCD码

二进制机器码

ASCII码

七段码

共阳

共阴

0000

30H

40H

3FH

0001

31H

79H

06H

0010

32H

24H

5BH

3

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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