多种结构汇编语言程序设计课件.ppt

多种结构汇编语言程序设计课件.ppt

ID:57014616

大小:270.50 KB

页数:37页

时间:2020-07-26

多种结构汇编语言程序设计课件.ppt_第1页
多种结构汇编语言程序设计课件.ppt_第2页
多种结构汇编语言程序设计课件.ppt_第3页
多种结构汇编语言程序设计课件.ppt_第4页
多种结构汇编语言程序设计课件.ppt_第5页
资源描述:

《多种结构汇编语言程序设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章汇编语言程序设计简介目录输入输出DOS功能调用顺序结构程序设计分支结构程序设计循环结构程序设计1.带显示的键盘录入(01H号功能)调用方式:MOVAH,01HINT21H输入符号的ASCII存入AL中2.不带显示的键盘录入(08H号功能)调用方式:MOVAH,08HINT21H输入符号的ASCII存入AL中顺序程序设计—输入输出DOS功能调用3.字符显示(02H号功能)调用方式:MOVDL,’A’MOVAH,02HINT21H输出符号的ASCII存入DL中.4.字符串显示(09H号功能)调用方式:MO

2、VDX,[字符串的起始地址]MOVAH,01HINT21H字符串定义的结束位置用$。顺序结构的程序设计1.用编辑软件(如EDIT程序)输入源程序(输完后存盘,并取文件名ADD.ASM,而且一定要带后缀名ASM),可以用EDIT命令在编辑前给源程序文件取名: C:>EDITADD.ASM(实现X+Y=Z的小程序)进行上机实验DATASEGMENT XDB45H YDB70H ZDB? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DSEG MOVD

3、S,AX MOVAL,X ADDAL,Y MOVZ,AL MOVAH,4CH INT21H CODEENDS ENDSTART2在屏幕上显示‘welcometobeijing!’编辑xianshi.asm3带显示输入一个小写字母并将它的大写字母显示出来!编辑bs.asm上机实验x#,y均为8位二进制数,设x存入y,求解:分支结构程序设计图5.2fenzhi.asm源程序上机实验从键盘输入字符并将输入的字符显示出来,如果输入是英文字符小写字母,将小写字母转换成为大写字母。datasegmentmessaged

4、b'Thisisasampleprogramofkeyboardanddisply'db0dh,0ah,'Pleasestrikethekey!',0dh,0ah,'$'dataends;定义数据段,数据段给出提示内容。在数据段中0dh和0ah分别表示回车和;换行字符。字符‘$’表示字符串的结束标志。如果没有回车和换行会出现什;么显示结果。stacksegmentstackdb50dup(?)stackends;定义堆栈段。其中参数stack表示程序在运行过程中,该段为系统堆栈段中;的一部分。如果不加这个,

5、将单独对本程序建立堆栈。codesegmentassumecs:code,ds:data,ss:stack;明确段寄存器与段定义之间的关系start:movax,datamovds,axmovax,stack;可以省,为什么?movss,ax;可以省,为什么?;初始化段寄存器movdx,offsetmessagemovah,9int21h;显示字符串。调用21H中断(也是DOS功能调用)的9号功能,该功能是;显示字符串,其中DS:DX为字符串地址,‘$’为字符串结束标志。again:movah,1int21

6、h;调用21H中断的1号功能,将键盘输入的字符ASC码存在al寄存器cmpal,1bh;和ESC键输入字符对比jeexit;如果是按下ESC键,就跳转结束cmpal,61h;和’a’字符对比jcnd;产生借位,就是小于‘a’字符,跳转到nd直接输入结果cmpal,7ah;和’z’字符对比jand;没有借位同时不为零,大于‘z’字符,跳转到nd直接输入结果andal,11011111b;如果输入字符在‘a’与‘z’之间,通过与运算,将小写转;换为大写。Subal,’a’-’A’也一样nd:movdl,al;将

7、字符传入到dl寄存器中movah,2int21h;调用21中断的功能2,将dl寄存器的字符输出jmpagain;循环执行,直到按下ESC键退出exit:movah,4chint21h;调用21中断的4ch功能,返回doscodeends;代码段结束endstart;结束汇编,程序结束如果将主程序建立为过程,由DOS调用该过程。进入程序后,首先把DS的内容和0作为段地址和偏移地址入栈,以便在程序结束时用RET指令返回DOS,这是一种较好的工作方式。如果在主程序开始时没有用上面三条指令在堆栈中建立返回信息,则在

8、程序结束时效不能直接用RET返回指令,而应该使用编号为4c的功能调用返回DOD。程序改为如下。循环程序设计图5.4MOVAX,0;累加求和寄存器清0MOVBX,OFFSETARRAY;数组始址送BX中MOVCX,50;循环控制计数初始化AGAIN:ADDAX,[BX]ADDBX,2;数组地址增2,BX指向下一个元素DECCX;循环控制计数减1JNZAGAIN;计数不为0时继续循环MOVS,AX;计数为0时循环结束

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

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

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