汇编语言实验报告6.docx
《汇编语言实验报告6.docx》由会员分享,可在线阅读,更多相关《汇编语言实验报告6.docx(11页珍藏版)》请在冰点文库上搜索。
汇编语言实验报告6
成绩评定
教师签名
嘉应学院计算机学院
实验报告
课程名称:
汇编语言程序设计
开课学期:
2016-2017学年第1学期
班级:
1402
指导老师:
实验题目:
转移指令原理
学号:
姓名:
实验8分析一个奇怪的程序
程序从start开始,将ax设置为0,然后设置2个字节的空空间
将s2指向的内容放入s指向的内存中
s的内容EBF6指s的地址相对于s1,跳转6个单位
程序继续执行(机器指令为JMP0008),跳转到s(0b75:
0008)的位置,s的内容为EBF6,向低地址跳转6个单位(机器指令为JMP0000),即退出程序
实验9根据材料编程
编程:
在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串’welcometomasm!
’。
对程序进行编译、链接、用debug跟踪程
结果如图
在data数据段中存放要显示的字符串及其属性,02h表示绿色,24表示绿底红字、71表示白底蓝字
先初始化各寄存器,把ds寄存器指向data段,ss指向stack段,sp指向栈底
因为要输出三个字符串,要循环三次,执行循环前把cx,ax等入栈,防止数据被意外改变
输出的每个字符串有16(10h)个字符,每个字符占两个字节“属性+内容”,在偶地址中存放要输出的字符,存放在es段中
在奇地址存放字符的表现属性,
将一行字符串存进内存中,开始准备输出下一行字符串
如果用t、p、g指令分步追踪程序的执行,可以看到字符串的存储过程,表现出单个的字符和属性,如图:
。
。
。
。
。
。
实验10编写子程序
1、显示字符串
子程序描述
名称:
show_str
功能:
在指定的位置,用指定的颜色,显示一个用0结束的字符串
参数:
(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79)
(cl)=颜色,ds:
si指向字符串的首地址
返回:
无
应用举例:
在屏幕的8行3列,用绿色显示data段中的字符串
assumecs:
code
datasegment
db'Welcometomasm!
',0
dataends
codesegment
start:
movdh,8;dh装行号(范围:
1--25)
movdl,3;dl装列号(范围:
1--80)[注:
每超过80等于行号自动加1]
movcl,0cah;cl中存放颜色属性(0cah为红底高亮闪烁绿色属性)
movax,data
movds,ax
movsi,0
callshow_str
movax,4c00h
int21h
show_str:
codeends
endstart
对程序进行编译、链接、用debug跟踪程
执行结果如图:
show_str子程序的分析:
bx=行号*每行的大小(a0h)=显示区所在的行号首地址的偏移地址
每个字符占两个字节“属性+内容”,bx=bx+相对于显示行的列偏移量*2
es存放显存的位置
cx存放data段中的内容,如果为0则结束程序
如果结果不为0,就把data段中对应的字符及其属性存到显存中