资源描述:
《80x86汇编语言电子教案(4-上机教案)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上机实例试编写一程序要求根据用户键入的月份数在终端上显示该月的英文缩写名TITLEEXAMPLE.ASMDATASEGMENTPARADATA定义数据段THREEDB3MESSDBMonth=0DH0AHMONINLABELBYTEMAXDB3ACTDBMONDB3DUPALFMONDB0DH0AHMONTABDBJANFEBMARAPRDBMAYJUNJULACGDBSEPOCTNOVDECDATAENDS月的英文缩写名的偏移MONTAB+(月份-1)34.4汇编语言程序的上机过程一DOS功能调用概述二常用DOS功能调用三汇编语
2、言程序上机过程四汇编语言程序上机举例一DOS功能调用概述DOS功能调用是DOS操作系统为程序员提供的一些通用的标准子程序程序员通过调用这些子程序可以减少程序对系统环境的考虑和依赖在程序设计中程序员使用DOS功能调用可以完成如下一些子功能1一般设备的输入输出2磁盘的输入输出及磁盘文件的管理3其它相关功能DOS功能调用按编号功能号进行调用调用方法1设置调用入口参数2MOVAH,功能号3INT21H如有出口参数则返回后直接到指定Reg或存贮单元中取出二常用DOS功能调用1DOS键盘输入功能调用1带回显单字符输入(AH=1)入口参数无出口
3、参数AL输入字符的ASCII码例get-key:movah,1int21h注意如输入字符为CtrlC或CtrlBreakcmpal,Y则程序结束jeyescmpal,N2不带回显单字符输入jeno(AH=8)jneget_key和1号功能调用的区别yes:2号功能调用输入的字no:符不在屏幕上显示3带回显字符串输入(AH=0aH)入口参数DS:DX缓冲区首地址(DX)maxlen®20出口参数无actlen®0b定义缓冲区1maxlendb32;string®‘H’缓冲区最大容量actlendb?;‘O’实际输入字符数string
4、db32dup(?);实际输入字符‘W’2maxlendb32,0,32dup(?)203maxlendb32,33dup(?)‘A’调用实例缓存区位于数据段Ds已经初始化‘R’leadx,maxlen‘E’movah,0ah20int21h‘Y’若输入实例为HOWAREYOUË‘O’调用结束时缓冲区结果如右图‘U’回车符0d若分配100个字节的空间那结束么最多能存放多少字节2DOS屏幕显示功能调用1单字符显示(AH=2)向屏幕输出一个字符入口参数DL要输出字符ASCII码出口参数无例movdl,Amovah,02Hint21H2
5、输出一个字符串(AH=9)入口参数DS:DX存储字符串的起始地址结束符为‘$’出口参数无例stringdbHELLO,0dh,0ah,$movdx,offsetstringmovah,9int21h上机实例试编写一程序要求根据用户键入的月份数在终端上显示该月的英文缩写名源程序如下TITLEEXAMPLE.ASMDATASEGMENTPARADATA定义数据段THREEDB3MESSDBMonth=0DH0AHMONINLABELBYTEMAXDB3ACTDBMONDB3DUPALFMONDB0DH0AHMONTABDBJANFEB
6、MARAPRDBMAYJUNJULACGDBSEPOCTNOVDECDATAENDSCODESEGMENTPARACODEASSUMECSCODEDSDATAESDATAMAINPROCFARPUSHDSSUBAXAXPUSHAXMOVAXDATAMOVDSAXMOVESAX程序主体代码EXITRET主过程结束MAINENDPCODEENDS代码段结束ENDMAIN程序结束程序主体代码如下STARTLEADXMESS输入提示MOVAH9INT21HLEADXMONIN输入一个字符串MOVAH0AHINT21HMOVDL0DH输出“
7、回车符”MOVAH02HINT21HMOVDL0AH输出“换行符”MOVAH02HINT21HCMPACT0将输入的字符串转换成数字JEEXIT输入非法退出程序MOVBH30HCMPACT2JETWOMOVBLMONMOVBLMONJMPCONV假设输入的字符串为12TWOMOVBLMON+13MAXMOVBHMON2ACTCONVXORBX3030HMOVAL1031HMULBH32HMONADDALBL0DHCMPAL13JNCEXIT输入非法退出程序LOCLEASIMONTAB根据输入月份查表DECALMULTHREEADD
8、SIAXSI指向所需月份的开始地址MOVCX3CLDLEADIALFMONREPMOVSB移动3字节到ALFMON中LEADXALFMON输出月份名MOVAH09HINT21HJMPSTART转去处理下一个作业画出该程序的流程图三汇编语言程序上机过