汇编实验报告.docx
- 文档编号:1194484
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:35
- 大小:229.79KB
汇编实验报告.docx
《汇编实验报告.docx》由会员分享,可在线阅读,更多相关《汇编实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
汇编实验报告
XXXX大学
实验报告
课程名称
汇编语言程序设计
成
绩
实验学时
评语:
指导教师:
年月日
班级:
学号:
姓名:
地点:
时间:
实验一汇编语言编程实验
一、实验目的
(1)掌握汇编语言的编程方法
(2)掌握DOS功能调用的使用方法
(3)掌握汇编语言程序的调试运行过程
二、实验内容
1.将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。
2.在屏幕上显示自己的学号姓名信息。
3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。
4.实验中使用的DOS功能调用:
INT21H
AH值
功能
调用参数
结果
1
键盘输入并回显
AL=输出字符
2
显示单个字符(带Ctrl+Break检查)
DL=输出字符
光标在字符后面
6
显示单个字符(无Ctrl+Break检查)
DL=输出字符
光标在字符后面
8
从键盘上读一个字符
AL=字符的ASCII码
9
显示字符串
DS:
DX=串地址,
‘$’为结束字符
光标跟在串后面
4CH
返回DOS系统
AL=返回码
例如,实现键盘输入并回显的完整代码:
MOVAH01H
INT21H
三、实验结果
1.将指定数据区的字符串数据”Letusgo!
”以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示:
2.在屏幕上显示自己的学号姓名信息
3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。
四、实验原理
DATASEGMENT
MESDB'NUMBER:
03099018',0AH,0DH,'NAME:
Feng
Xiaokang',0AH,0DH,'$'
CENTDB'Letusgo!
','$'
ENTEDB0AH,0DH,'$'
INFODB'Origin:
','$'
ASCIDB'ASCII:
','$'
MSG1DB'Ifyouwanttoquitpleasepress...q/Q...',0AH,0DH,'$'
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
INT21H
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
MOVAH,02H
INT21H
INCSI
LOOPT
C1:
MOVDX,OFFSETMSG2
MOVAH,09H
INT21H
MOVAH,01h
INT21h
CMPAL,'q'
JEexit
CMPAL,'Q'
JEexit
MOVSD,AL
MOVDX,OFFSETRS;showmessage
MOVAH,09H
INT21H
MOVSI,OFFSETSD
MOVAL,[SI]
ANDAL,0F0H;取高4位
MOVCL,4
SHRAL,CL
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;showcharacter
MOVAH,02H
INT21H
MOVAL,DS:
[SI]
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL
MOVAH,02H
INT21H
LOOPC1
C:
MOVDX,OFFSETMSG1
MOVAH,09H
INT21H
LOP:
MOVAH,08H
INT21H
CMPAL,'Q'
JEexit
CMPAL,'q'
JEexit
JMPLOP
EXIT:
MOVAX,4C00H;gobacktodos
INT21H
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.输入非法值
五、实验原理图
源代码:
DATASEGMENT
NUMBERDB'No.:
03099018',0AH,0DH,'NAME:
Fengxiaokang',0AH,0DH,'$'
ERRORDB0AH,0DH,'ERROR!
PLEASETRYAGAIN!
',0AH,0DH,'$'
INPDB0AH,0DH,'Pleaseinputanumber,youcanexitbyinputing"q"or"Q"',0AH,0DH,'$'
XPDB0AH,0DH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
start:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETNUMBER
MOVAH,09H
INT21H
MOVBX,0H
MOVDX,OFFSETINP
MOVAH,09H
INT21H
input:
MOVAH,01H
INT21H
CMPAL,0DH;数字输入完毕
JEchange
CMPAL,'Q';退出
JEEXIT
CMPAL,'q'
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
MOVAH,09H
INT21H
MOVBX,0H
jmpinput
ZERO:
MOVCL,4
JMPLOOPS
change:
CMPBX,00H
JZERRORS
MOVCL,4
loops:
MOVDX,BX
ANDDX,0F000H
SHRDX,12
CMPDX,0AH;是否是A以上的数
JLC2
ADDDX,07H
C2:
ADDDX,30H
;showchArActer
MOVAH,02H
INT21H
SHLBX,4
LOOPloops
MOVDX,OFFSETXP
MOVAH,09H
INT21H
JMPINPUT
EXIT:
MOVAX,4C00H
INT21H
CODEENDS
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码
七段码
共阳
共阴
0
0000
0000
30H
40H
3FH
1
0001
0001
31H
79H
06H
2
0010
0010
32H
24H
5BH
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)