汇编语言第4章顺序程序设计.ppt

汇编语言第4章顺序程序设计.ppt

ID:49276519

大小:617.50 KB

页数:105页

时间:2020-02-03

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

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

1、汇编语言第四章第四章汇编语言程序设计设问:1.为什么要有伪指令?2.运算结果怎样显示在屏幕上?3.含有键盘输入的程序如何编写?4.完整的汇编语言程序都有哪些要求?5.简化的程序格式是不是更方便?本章重点汇编语言程序格式伪指令的用法数值运算程序设计屏幕显示和键盘输入4.1汇编语言程序设计初步举例:编写一个汇编语言程序,实现下列公式计算。假设X=4,Y=5Z=(X+Y)×8-X24.1.1第1个汇编语言程序设计思路一:(1)设公式中出现的三个变量X、Y、Z是8位带符号数;(2)用算术运算指令实现加减乘除

2、运算;(3)指令顺序按照运算顺序书写。程序段:MOVAL,X;AL←XADDAL,Y;AL←X+Y加法MOVBL,8;BL←8IMULBL;AX←AL×8乘法MOVBL,X;BL←XMOVBH,0;BH←0SUBAX,BX;AX←AX-X减法MOVBL,2;BL←2IDIVBL;AX÷2除法,商在AL,余数在AH中MOVZ,AL;Z←商MOVZ1,AH;Z1←余数设计思路二:(1)公式中出现的三个变量X、Y、Z是带符号数,在数据段中定义;(2)用算术运算指令实现加减运算;(3)将操作数左移3位二进制

3、位数代替乘以8运算,操作数右移1位相当于除以2;(4)指令在代码段中,指令顺序按照运算顺序书写。DATASEGMENT;数据段定义伪指令XDW4;定义X为字单元,值为4YDW5ZDW?;定义Z为空单元DATAENDS;数据段结束完整的程序如下:;abc.asm公式计算CODESEGMENT;代码段定义伪指令ASSUMECS:CODE,DS:DATA;指定段寄存器与对应段名START:MOVAX,DATAMOVDS,AX;将数据段段地址送入DSMOVBX,XMOVAX,YADDAX,BX;加法MOVC

4、L,3SALAX,CL;算术左移3次,相当于乘以8SUBAX,X;减法SARAX,1;算术右移1次,相当于除以2MOVZ,AXMOVAH,4CH;此两句为结束程序,返回DOSINT21HCODEENDS;代码段结束ENDSTART;整个程序结束伪指令4.1.2从源程序到可执行程序图汇编语言程序从输入到生成可执行文件过程1.建立和生成的文件2.汇编环境3.上机步骤4.调试程序1.建立和生成的文件(1)用户编写的源程序,源程序名自定、扩展名为.ASM(2)源程序经汇编程序MASM汇编(翻译)后生成二进制

5、目标程序,文件名默认与源程序同名、扩展名为.OBJ(3)目标程序需要经过LINK连接生成可执行程序,文件名默认与源程序同名、扩展名为.EXE2.汇编环境最基本的汇编环境只需要两个文件:MASM.EXE和LINK.EXE。将这两个文件拷入到已经建好的文件夹(例如HB)中,并将文件夹HB放在硬盘根目录C:>下文本编辑软件可以用EDIT或者“记事本”3.上机步骤C>cd退到根目录C>cdhb进入hb子目录C:hb>editabc.asm编辑源程序C:hb>masmabc.asm汇编C:hb>li

6、nkabc.obj连接C:hb>abc.exe执行C:hb>debugabc.exe调试进入DOS窗口中执行:4.调试程序-U反汇编-G断点执行程序-DDS:0查看数据段-Q退出进入DEBUG后,执行如下命令:上机练习:(1)验证举例的设计思路二程序(2)将举例的设计思路一的程序段增加相关的伪指令,修改为可上机执行的程序。4.2伪指令4.2.1段定义伪操作段定义伪指令ASSUME伪指令段定义伪指令段定义伪指令可用来定义各种类型的段。格式如下:段名SEGMENT[类型参数]……段名ENDSSEGM

7、ENT和ENDS必须成对使用,表示段的开始和结束。类型参数:(1)定位类型PARA该段的起始地址必须为小段的首地址,即段地址的十六进制数最低位为0BYTE该段可以从任意地址开始WORD该段必须从字边界开始,即段的起始地址为偶数DWORD该段必须从双字边界开始,即段地址的十六进制数最低位应为4的倍数PAGE该段必须从页边界开始,即段地址的十六进制数最低两位为00(能被256整除)如果不指出定位类型,系统默认为PARA。(2)组合类型PRIVATE该段为私有段,连接时不与其他同名段合并PUBLIC连接时

8、可与其他模块中的同名段按顺序连接成一个段COMMON表示该段与其他模块中的同名段有相同的起始地址,如果连接将产生覆盖;连接后,段的长度为同名段中的最长者STACK表示该段为堆栈段AT表达式该段直接定位在表达式指出的位置上如果不指定组合类型,系统默认为PRIVATE。(3)类别标识在引号中给出段的类型名,在连接时,类别标识相同的段放在连续的存储区中。例如,用’STACK’来标识该段为堆栈段返回ASSUME伪指令ASSUME伪指令用于指明段寄存器与段的对应关系,格式为:A

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

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

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