汇编语言程序设计的基本方法和技巧.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计的基本方法和技巧

第七章 汇编语言程序设计的基本方法和技巧 7.1 概述 7.2 伪指令和宏指令 7.3 8086汇编语言程序设计的基本语法 7.4 汇编语言程序设计的基本方法和技巧 7.7 IBM-PC-DOS系统的功能调用 7.2 伪指令和宏指令 1. 符号定义伪指令 等值语句 符号名 EQU 表达式 功能:为一个表达式赋予一个符号名 表达式类型:常数或数值,地址,变量、标号、寄存器、指令助记符 e.g. COUNT EQU 5 NUM EQU COUNT+5 e.g. ADDR EQU DS:[DI+7] e.g. LABLE EQU START+BET CNT EQU BX CBD EQU SUB 注:EQU定义的符号名不能被重新定义 等号语句 符号名 = 表达式 e.g. NUM = 6 … NUM = NUM+2 注:与EQU区别在于符号名可以重新定义 e.g. 利用DW伪指令可存放偏移地址,DD伪指令可存放偏移地址和段地址 XX DW OFFSETX LIST DD LABEL OFFSETX为XX在其段内的偏移地址 LABEL为双字,一字为偏移地址,一字为段地址 e.g. 数据复制 D1 DB 3 DUP(11, ?) D2 DW 2 DUP(4, ?) D3 DB 2 DUP(‘AB’, 2, DUP(8)) 5. 过程(子程序)定义伪指令 注意: PROC与ENDP必须成对出现; NEAR时表示段内调用,FAR表示段间调用,未指定时,认为是NEAR 一个过程中可以有一个以上的返回指令RET,它们不必放在过程的最后。 6. 模块定义伪指令 注意: NAME和END成对出现 程序开始可以用NAME或TITLE为模块取名字 标号指示程序开始执行的起始地址,如果多个程序模块相连接,则只有主程序要使用标号,其他子程序模块则只用END而不必指定标号。 7. 定位伪指令 功能:指定其后的程序段或数据块的起始地址的偏移量。数值表达式的值是一个无符号数。 二、宏指令语句 1. 宏定义和宏名字(宏指令) 宏名字 MACRO [形式参数1,形式参数2,…] … ENDM 宏定义:为需要多次重复书写的程序段确立(定义)一个名字。 宏调用:经过宏定义的程序段在此后重复书写时用宏名字代替。 宏展开:汇编时,汇编程序遇到宏名字将其对应的宏体展开。 e.g. 实现两个八位二进制数相乘,结果送BX所指单元 注意: 宏调用前必须进行宏定义 宏调用与子程序调用完全不同 7.3 8086汇编语言程序设计的基本语法 助记符由指令系统规定。 定义符由汇编程序规定。 都称为关键字或保留字,不能用作标号、名字、变量名。 2. 变量 代表存放在某存储单元的数据,若变量在名字中出现,称为对变量的定义,就是给变量分配存储单元,且对这个存储单元赋一个符号名——变量名。同时将这些存储单元预置初值,可以通过DB、DW、DD等对变量定义。 ② MOD:除法取余 SHL/SHR:逻辑左/右移,最右/左边以0补,当移位次数≧16时,结果恒为0 (3) 关系运算符 EQ、NE、LT、LE、GT、GE 关系运算符连接两数(这两个数必须同时是数字或同一段内的两个地址)组成一个判定式,若判定式正确(为真),运算结果为0FFFFH,若为假,则运算结果为0000H 7.4 汇编语言程序设计的基本方法和技巧 汇编语言的程序设计步骤如下: 1.建立数学模型; 2.选择算法; 3.绘制流程图; 4.分配存储空间和工作单元; 5.根据流程图编制程序; 6.上机调试程序。 1. 顺序程序设计 例 从标号为ADD-BUF的存储单元开始连续存放着两个单字节数,将两数相加,结果送到SUM-BUF存储单元中(不考虑进位)。 2. 分支程序设计 例 比较两个一字节无符号数X1和X2的大小,把大数存入MAX单元。 3. 循环程序设计 例 从XX单元开始的10个连续单元中存放有10个无符号数,从中找出最大者送入YY单元。 分析:根据题意,把第一个数先送入AL,将AL中的数与后面的9个数逐个比较,如果AL中的数较小,则两数交换位置,如果AL中的数大于或等于相比较的数,则两数位置不变,在比较过程中,AL中始终保持较大的数,比较9次,则最大者必在AL中,最后把AL中的数送入YY单元。 7.7 IBM-PC-DOS系统的功能调用 一、调用方法及注意问题 PC-DOS提供了87个子程序供用户调用,编号为0~57H(

文档评论(0)

fengruiling + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档