- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口技术4课件
第四章 汇编语言程序设计;; 汇编语言;;;接上页程序;4·1·2 语句类型及格式;4.1.3 操作数;1.常量; 2.标号-符号地址;标号有三种属性;3.变量;…;;表达式种类;⑶取值算术运算符;属性运算符PTR;⑸其他运算符;4.2 伪 指 令;数据定义伪指令的一般格式为:
[变量名] 伪操作 操作数 [,操作数,…]
常用的数据定义伪操作有5种:
DB(Define byte): 定义字节类型的变量
DW(Define word):定义字类型的变量
DD(Define double word):定义双字类型的变量
DQ(Define quad word):定义四字类型的变量
DT(Define ten bytes):定义十字节类型的变量
;例如;EQU 用于给一个表达式赋予一个名字。
名字 EQU 表达式
表达式可以是一个常数、符号、数值表达式、 地址表达式或指令助记符。如:
CR EQU 0DH
VAR EQU TEN*2+1024
ADR EQU ES:[BP+DI+5]
GOTO EQU JM ;“=”伪指令允许给符号赋一个常量或者结果是常量的表达式。
EQU 与 “=”的区别:
EQU不允许对同一个符号重复定义。
“=”伪指令允许对一个符号重复定义。
如:VAR=10H ; VAR代表了数值10H
VAR=25H ;VAR代表了数值为25H;段定义伪指令用来定义汇编语言程序中的逻辑段,其格式如下:
段名:SEGMENT :
段名:ENDS
SEGMENT和ENDS成对出现,缺一不可。
段名必需相同,不能与指令助记符和伪指令重名。;4.2.4 设定段寄存器伪指令;例如;4.2.5过程定义伪指令;例:在一个子过程中又嵌套了一个过程;在程序中多次使用的程序段可以定义为宏指令。然后在需要时,通过宏指令名进行调用(宏调用),避免重复书写。
宏指令名 MACRO形式参数
[宏体]
ENDM
宏指令名指出了宏的名称。同标识符的规定。
形参为可选项,每个参数之间用“,”隔开。
调用时用实际参数代替形式参数。;使用方法
宏程序在源程序中可以通过宏指令名进行调用。
子程序要通过CALL指令进行调用,RET返回。
占用内存
宏指令简化了源程序,但不能简化目标程序。汇编後,每个调用处都会宏展开,占用内存。
CALL指令产生相应的机器代码,节省内存。CALL执行过程,如现场保护、参数传递需要堆栈空间。
执行时间
CALL指令需要保护断点和恢复断点,宏不需要。
宏程序用空间换取了时间,子程序用时间换取了空间;宏调用和宏展开的使用;程序可以有多个模块组成,用NAME伪指令为模块命名, 用END结束源程序。
[标号] :
:
END [标号]
END指示汇编程序停止汇编。后边的标号表示程序执行的开始地址。END伪指令将标号的段值和偏移地址分别提供给CS:IP寄存器。;DATA SEGMENT
TABLE DB 12H,23H,34H,45H,56H,
DB 67H,78H,89H,9AH,0FDH
SUM DW ?
DATA ENDS
STACK SEGMENT
DB 50 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK;接上页;4·3 DOS功能调用;所有的DOS功能调用都是通过指定功能号来调用 INT 21H的不同子功能。
操作如下:
⑴送入口参数给指定寄存器;
⑵子程序的功能号→AH;
⑶执行INT 21H指令;
⑷分析出口参数;
下面介绍INT 21H的几个最常用的功能: ;功能号1、7、8都可以接收键盘输入的单字符。
输入的字符以ASCII码形式放在AL中。
7、8号功能无回显,1号功能有回显。
[例4-8] 从键盘输入字符“Y”的程序段
MOV AH,1 ;有回显键盘输入,功能号1 → AL
INT 21H ;接收一个键值→AL
CMP AL, ‘Y’ ;比较键入的字符是否‘Y’
JE YES
…
YES:;键盘输入;2.显示字符串;接上页; 3.返回到DOS; 4.4汇编语言程序设计基础;1·程序质量的评价标准; 汇编语言设计和其他高级语言设计一样可以分成以下几个步骤:
分析问题,确定算法,画出程序流程图。
编写源程序形成扩展名为ASM的源文件。
经过汇编生成扩展名为OBJ的目标代码文件。
经过链接生成扩展名为EXE的可执
文档评论(0)