欢迎来到天天文库
浏览记录
ID:20433087
大小:33.00 KB
页数:6页
时间:2018-10-09
《二进制数转换ascⅱ码汇编语言源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、二进制数转换ASCⅡ码的汇编语言源程序一实验目的………………………………………………3二、编程提要……………………………………………..3三、流程图及算法…………………………………………4四、心得体会……………………………………..………7一实验目的:进一步熟悉汇编语言的代码;学会分析算法并构造流程图;能够完成简单的子程序设计;学会查找程序的算法。二、编程提要在这些功能段中,最重要的工作是管理当前光标位置的指针和键盘缓冲区的头、尾指针,为此,在数据段中,设置了一个60H字节的缓冲区(kbd_buff),两个字的缓冲区
2、头、尾指针(bufpt&buftl),指示光标位置的行、列指针(rowpt&colpt),根据需要还设置了10H行的字符计数单元和一个字的最大输入行的记录单元。如此设置的缓冲区及其它指针单元在调试程序时,可正好用DEBUG的D命令将全部信息一次显示出来。程序调试好后,可根据实际扩充数据区三、流程图及算法根据流程图编写程序:如下:DATASEGMENTNUM8DB93HNUM16DW0ABCDHASCBUFDB20DUP(0)DATAENDSSTACKSEGEMNTSTACKDB200DUP(0)STACKENDSCO
3、DESEGMENTASSUMEDS:DATA,CS:CODE,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVDX,0MOVDL,NUM8;转化二进制数送DXMOVCX,8;置数8LEADI,ASCBUF;字符串首地址→DICALLBTASC;调用子程序BTASCMOV[DI],BYTEPTR0DHMOV[DI+1],BYTEPTR0AHMOV[DI+2],BYTEPTR‘$’LEADX,ASCBUFMOVAH,9INT21HMOVDX,NUM16MOVCX,16;置位数16LEADI,ASCB
4、UFCALLBTASCMOV[DI],BYTEPTR0DHMOV[DI+1],BYTEPTR0AHMOV[DI+2],BYTEPTR‘$’LEADX,ASCBUFMOVAH,9INT21HMOVAH,4CHINT21HBTASCPROCPUSHAX;保存AXMOVAL,0CMPCX,8;比较8数JNEL1;直接转化16位数MOVDH,DL;8位数转换送DHL1:ROLDX,1;DX最高位移入CFRCLAL,1;CF移入AL最低位ADDAL,30HMOV[DI],ALINCDILOOPL1POPAXRETBTASCEN
5、DPCODEENDSENDSTART四、心得体会:通过该程序的设计,我对算法设计更加深刻了,可以读懂一些基础的汇编代码,同时丰富了自己的数据结构知识,对以后的学习帮助会有不少帮助。
此文档下载收益归作者所有