资源描述:
《东华汇编实验六.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统原理实验报告实验名称:子程序和宏汇编的程序设计姓名:学号:班级:计算机指导老师:一、实验内容(描述实验内容)1.控制台输入输出2.简单循环程序设计3.简单分支程序设计4.子程序设计5.课内完成实验6.课后补充实验二、实验目的(描述实验目的)1、掌握子程序设计和调试方法,包括: 1) 掌握主程序与子程序之间的调用关系及其调用方法; 2) 掌握子程序调用过程中近程调用与远程调用的区别;2、掌握DOS调用功能的输入输出设计方法3、掌握大小转换的设计方法4、掌握十进制数的计算设计方法三、实验原理(描述实验基本原理)利用edit.com编写汇编程序利用MA
2、SM编译汇编程序利用LINK连接汇编程序利用DEBUG调试汇编程序四、实验过程(重点部分,必须包括:实验开发环境、实验步骤、实验源程序代码及其结构分析)环境:WindowsXP练习一:datasegmentSTRINGdb0dh,0ah,'Hello!',0dh,0ah;初始化内存dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovbx,offsetSTRINGmovcx,11;循环次数ONE:movdl,[bx]movah,2int21h;输出字母incbxloopONE
3、;循环movax,4c00hint21hcodeendsendstart练习二:datasegmentSTRINGdb0dh,0ah,'Hello!',0dh,0ah,'$';初始化内存dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axleadx,STRINGmovah,9int21h;输出字符串movax,4c00hint21hcodeendsendstart练习三:datasegmentXdbbCdb10;初始化内存dataendscodesegmentassumecs:c
4、ode,ds:datastart:movax,datamovds,axmovcx,3;循环次数moval,XONE:movah,0;高八位清零divCpushax;余数压入栈loopONEmovcx,3TWO:popdxxchgdh,dl;把余数交换到dlordl,30hmovah,2int21h;输出loopTWO;继续循环movax,4c00hint21hcodeendsendstartmovah,2练习四:datasegmentYdw10111BCdw16hexdb'ABCDEF';初始化内存dataendscodesegmentassumeds:
5、data,cs:codestart:movax,datamovds,axmovcx,4;循环次数movax,Yone:movdx,0divCpushdx;余数入栈looponemovcx,4leabx,hextwo:popaxxlat;转换成阿斯克码movdl,almovah,2int21h;输出looptwpmovax,4c00hint21hcodeendsendstart练习五:datasegmentsumdb?;定义总和所在内存空间dataendscodesegmentassumecs:code,ds:datastart:movax,datamov
6、ds,axmovcx,5;循环次数movsum,0;总和先清为零begin:movah,1int21h;输入数字andal,0fh;转换为十进制数字addsum,al;求和loopbeginmovax,4c00hint21hcodeendsendstart练习六:datasegmentSUMdb?BUFFERdb6,?,6dup(?);划出内存空间dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axleadx,BUFFERmovah,0ahint21h;输入5个数字movSUM,
7、0movcx,BUFFER+1;循环次数movbx,offsetBUFFER+2;第一个数的地址one:moval,[bx]andal,0fh;转换为十进制数addSUM,al;求和incbxlooponemovax,4c00hint21hcodeendsendstart练习七:datasegmentBUFFERdb6,?,6dup(?)Cdw10Xdw?dataendscodesegmentmovax,datamovds,axleadx,BUFFERmovah,0ahint21h输入数字movax,0movcx,offsetBUFFER+1;循环次数l
8、eabx,BUFFER+2;第一个数字的地址one:mulCmovdl,[bx]