- 1、本文档共170页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计xtwang@mail.xidian.edu.cn 任课教师.pptx
第四章 汇编语言程序设计任课教师:王晓甜xtwang@623451子程序的设计汇编语言程序设计基础综合程序的设计分支程序的设计循环程序的设计源程序的汇编、链接与调试本章要点1.汇编语言程序设计基础算法 所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。 若题目涉及到某种运算,则必须写出适合程序设计的正确算法,若题目要完成的功能未涉及到运算,也要写出编程思想。1.汇编语言程序设计基础4.4.1 程序设计的基本过程一、程序设计的一般步骤汇编语言程序设计基本上与高级语言程序设计一样,一般步骤:1.分析问题并抽象出数学模型。2.确定最佳算法。3.画出程序结构框图和流程图。4.合理分配内存工作单元和寄存器,并了解I/O接口地址。5.编程并调试。(有时需要用注释行说明程序,便于阅读和修改。)二、评价程序质量的标准1.合理组织数据,发挥存贮器、Reg的作用。2.程序逻辑结构好,便于二次开发。3.可读性强。 4.高可靠性和可维护性。 5.效率高(代码少)。模块化设计方法“自顶向下,逐步细化” 结构化编码方法 顺序、分支、循环三种基本结构 1.汇编语言程序设计基础编写程序采用汇编语言编写程序应注意以下几个问题:(1)必须详细了解CPU的编程模型、指令系统、寻址方式及相关伪指令;(2)必须进行存储空间和工作单元的合理分配;(3)多次使用的程序段可采用子程序或宏指令;(4)尽可能用标号或变量来代替绝对地址和常数;§1.1 汇编语言基本元素1.1.1 汇编语言的语句格式 由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个部分组成,其格式是:[标识符] 指令助记符 [操作数][;注解] 其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符。(1)标识符:给指令或某一存储单元地址所起的名字。标识符由下列字符组成:(以字母或圆点开头)字母: A~Z, a~z; 数字: 0~9; 特殊字符: ? . @ _ $ 数字不能作标识符的第一个字符,而. 仅能作标识符的第一个字符,标识符最长为31个字符。标识符后跟冒号时表示标号,代表该行指令的起始地址, 标号可以被转移、调用指令直接引用。标识符后不带冒号时表示变量。伪指令前的标识符不加冒号。 (2)指令助记符 表示不同操作的指令,可以是8086/8088的指令助记符,也可以是伪指令。 (3)操作数 是指令执行的对象。依指令的要求,可能有一个、两个、没有或者多个。 例如:RET ;无操作数COUNT: INC CX ;一个操作数 MOV CX,DI ;两个操作数 ADD AX,[BP十4];第二个操作数为表达式 (4)注释 该项可有可无,是为源程序所加的注解,用于提高程序的可读性。 1.1.2 汇编语言运算符汇编语言运算符:是汇编程序在汇编时计算的,与运算指令不同,指令是在程序运行时计算的。1、算术运算符、逻辑运算符、关系运算符 如:+、-、×、 / 、 AND、OR、LT等 MOV AX, [DI+BX] ADD AX, FIRST+1MOV AX, ((choice LT 20) AND 5) OR ((choice GE 20) AND 6 )注意:算术运算符总可以用于数字操作,其结果也是数字的。当应用于存储器操作数时,只有+, -运算符有意义;逻辑运算符的操作数也必须是数字,存储器操作数不能进行逻辑运算;关系运算符连接的两个操作数,必须都是数字的或是在同一段内的存储器地址。2、取值运算符 1) $运算符$:当前地址偏移量的值$BLOCK‘H’‘E’‘L’‘L’‘O’‘!’BLOCK DB ‘HELLO!’NUM EQU $-BLOCK;NUM为 6SEG 和OFFSETSEG: 求标号或变量的段地址OFFSET: 求标号或变量的偏移地址例如,定义:SLOT DW 25则:MOV AX,SLOT; 从SLOT地址中取一个字送入AX MOV AX,SEG SLOT; 将SLOT的段地址送入AX MOV AX,OFFSET SLOT; 将SLOT的段内偏移地址送AX 3) TYPE 返回标号或存储器操作数的类型值对存储器操作数:表示占用的字节数 对标号:表示过程或指令地址的调用类型表3-1存储器操作数的类型属性及返回值 字节 字 双字NEAR FAR 1 2 4-1 -24) LENGTH 和 SIZE(对用DU
文档评论(0)