汇编语言程序设计

汇编语言程序设计

ID:11116567

大小:97.50 KB

页数:13页

时间:2018-07-10

汇编语言程序设计_第1页
汇编语言程序设计_第2页
汇编语言程序设计_第3页
汇编语言程序设计_第4页
汇编语言程序设计_第5页
资源描述:

《汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、微机原理与接口技术汇编语言程序设计[顺序结构、分支结构、循环和子程序以及DOS调用程序设计例题][陈钟暮鼓]2012/10/1北华航天工业学院计算机科学与工程系by陈钟暮鼓顺序结构程序设计【例1】内存数据区预存两个字数据,编程求两数之和,结果送SUM单元保存。源程序设计如下:A1.ASMDATASEGMENT;数据段定义AADW1234H;定义AA为字数据,预置初值1234HBBDW3456H;定义BB为字数据,预置初值3456HSUMDW?;定义SUM为字变量,预留空间DATAENDS;数据段结束CODESEGMEN

2、T;代码段定义ASSUMECS:CODE,DS:DATA;段名与段寄存器的说明START:MOVAX,DATA;初始化DSMOVDS,AXMOVAX,AA;取第1个数至AXMOVBX,BB;取第2个数至BXADDAX,BX;两数相加MOVSUM,AX;结果送SUMMOVAH,4CH;返回DOSINT21HCODEENDS;代码段结束ENDSTART;汇编结束【例2】编程求S=(X2+Y2)/Z,将结果放入S单元保存。本题需定义4个变量:X、Y、Z是表达式计算涉及到的数据;S是结果存放单元;为方便数据重复使用,采用寄存器

3、存放中间结果X2和Y2。源程序设计如下:A2.ASMDATASEGMENT;定义数据段XDB3;定义字节变量X、Y、Z并赋初值YDB4ZDB5SDB?;定义S变量,预留空间DATAENDS;数据段结束CODESEGMENT;定义代码段ASSSUMECS:CODE,DS:DATA;段名与段寄存器说明START:MOVAX,DATA;初始化DSMOVDS,AXMOVAL,X;数据X送ALMULX;乘法,计算X2MOVBX,AX;中间结果保存到BXMOVAL,Y;数据Y送ALMULY;乘法,计算Y2ADDAX,BX;加法,X

4、2+Y2,结果保存到AXDIVZ;除法,计算(X2+Y2)/ZMOVS,AL;最后结果送SMOVAH,4CH;返回DOSby陈钟暮鼓INT21HCODEENDS;代码段结束ENDSTART;汇编结束分支结构程序设计【例3】将键盘输入的小写字母转换为大写字母显示在屏幕上。源程序设计如下:A3.ASMCODESEGMENT;代码段定义ASSUMECS:CODESTART:MOVAL,01H;DOS调用的01号功能从键盘输入字符INT21HCMPAL,‘a’;与‘a’的ASCII码比较JBEXIT;低于‘a’,转EXITCM

5、PAL,‘z’;与‘z’的ASCII码比较JAEXIT;高于‘z’,转EXITSUBAL,20H;大小写字母相差20HMOVDL,AL;转换后结果送DLMOVAH,02H;DOS调用02号功能,显示结果INT21HEXIT:MOVAH,4CH;返回DOSINT21HCODEEND;代码段结束ENDSTART;汇编结束【例4】连续将键盘输入小写字母转为大写字母输出,字母之间用“-”号间隔。源程序设计如下:A4.ASMCODESEGMENTASSUMECS:CODESTART:MOVAH,01H;从键盘输入字符INT21H

6、MOVBL,AL;保存在BL中MOVDL,‘-’;送‘-’号到DLMOVAH,02H;显示字符‘-’INT21HMOVAL,BL;取回键盘输入字符CMPAL,‘a;与‘a’比较JBEXIT;低于转EXITCMPAL,‘z’;与‘z’比较JAEXIT;高于转EXITSUBAL,20H;转换为大写字母MOVDL,AL;结果送DLMOVAH,02H;调屏幕显示INT21HMOVDL,0AH;调换行ASCII码MOVAH,02H;输出by陈钟暮鼓INT21HMOVDL,0DH;调回车的ASCII码MOVAH,02H;输出INT

7、21HJMPSTART;无条件转STARTEXIT:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART【例5】:有3个无符号字节数无序存放在BUF1开始的存储区,将其从大到小排列并存放在BUF2开始的存储区。分析:3个数据分别送AL、BL、CL,在3个寄存器间比较大小,排序后依次存放在BUF2开始的存储区。存储单元和寄存器分配如下:(1)BUF1为原始数据存储区首址;(2)BUF2为已排序数据存储区首址;(3)AL、BL、CL存放原始数据;(4)SI指向BUF1;(5)DI指向BUF2。源程序设

8、计如下:A5.ASMDATASEGMENT;数据段定义BUF1DB56H,12H,78HBUF2DB3DUP(?)DATAENDSCODESEGMENT;代码段定义ASSUMECS:CODE,DS:DATABEGIN:MOVAX,DATA;初始化DSMOVDS,AXMOVSI,OFFSETBUF1;取偏移地址MOVDI,OFFSE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。