7-汇编语言及汇编程序.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:29 大小:284KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

7-汇编语言及汇编程序.ppt

7-汇编语言及汇编程序.ppt

预览

免费试读已结束,剩余 19 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七章汇编语言及汇编程序构成汇编语言源程序的语句主要包括两类:指令性语句和伪指令语句。汇编是把汇编语言程序翻译成机器语言描述的目标程序的过程。汇编程序是完成汇编任务的程序。伪指令的概念伪指令与指令语句不同,本身不产生对应的机器码,仅告诉汇编程序,对后面的指令语句和伪指令语句的操作数该如何产生机器码。7.1.1伪指令语句格式[标号名]伪指令操作数;注释7.1.2常数、变量和标号1.常数2.变量代表存储单元的数据,数据在程序运行期间可以修改,变量以变量名的形式出现在程序中,可认为是存放数据存储单元的符号地址。变量的定义与预置定义变量是给变量分配存储单元,且对这个存储单元赋予一个符号名—变量名,同时将这些存储单元预置初值。变量的定义与预置用数据定义伪指令3标号构成汇编语言源程序的语句主要包括两类:指令性语句和伪指令语句。指令性语句是在程序运行期间有CPU执行的,汇编后由对应的机器代码所取代。伪指令语句是不可执行的,它只是在源程序汇编期间由汇编器处理的命令,用来指示汇编器为数据分配内存空间,或者为汇编器提供源程序结束或段定义等信息。1、符号定义伪指令形式为:(1)〈符号名〉EQU表达式EQU后的表达式可以是数值、字符串,甚至可以是寄存器名、指令的助记符等。1、符号定义伪指令用来为数据分配内存空间,并设置相应内存单元的初始值。其形式为:[变量名]数据定义伪指令表达式1,表达式2…,或数据项变量名是一个符号地址,表示其后操作数的首地址,多个操作数构成一个数组。变量名是程序员给出的标识符,为可选项,给出变量名只是为了按名存取其对应的内存单元。(2)?表达式DA1DB?,?DA2DW?,?(3)字符串表达式STA1DB‘ABCDEF’STA2DW‘AB’,‘CD’,‘EF’STA3DD‘AB’,‘CD’(4)带DUP表达式DUP是定义重复数据符。其格式为:DB变量名DW表达式1DUP(表达式2)DD其中表达式1是重复的次数,表达式2是重复的内容。如:ALL_ZERODB0,0,0,0,0用复制操作可改为:ALL_ZERODB5DUP(0)3.段定义伪指令格式如下:〈段名〉SEGMENT(段的开始)…〈语句序列〉〈段名〉ENDS(段的结束)其中删节号部分,对于DS、ES和SS来说,一般是存贮单元的定义、分配等伪操作;对于代码段则是指令及伪指令操作。段名是自定义符,开始的段名与结束的段名必须相同。其一般结构如下:SSEGSEGMENTSTACK〈堆栈段的内容〉SSEGENDSDSEGSEGMENTDATA〈数据段的内容〉DSEGENDSCSEGSEGMENTCODE〈代码段的内容〉CSEGENDSEND〈启动标号〉4.段寄存器说明伪指令明确段名和段寄存器的对应关系。格式为:ASSUME〈段寄存器名1〉:〈段名〉,〈段寄存器名2〉:〈段名〉…,其中段寄存器名必须是CS、DS、ES和SS中的一个,而段名则必须是由SEGMENT定义的段中的段名。如:ASSUMECS:CODE,DS:DATA,SS:STAC6.程序开始伪指令在程序的开始可以用NAME或TITLE为模块的名字。格式是:NAME模块的名字。表示源程序结束的伪指令格式为:END〈启动标号〉该伪指令告诉汇编程序源文件结束,并给出执行程序的入口位置。只有主程序要使用标号,其他子程序模块则只用END而不必指定标号。7.过程定义伪指令过程名PROC[NEAR]或[FAR]子程序RET过程名ENDP8.定位伪指令格是:ORG<表达式〉表达式的值为无符号数,ORG伪操作可以把以下语句定义内存数据或程序,从表达式指定的地址开始连续存放。其中表达式必须是一个可计算得到正整数的,数值范围在0~65535。ORG2000HA1DB10H,12H,13HA2DW4567H,0FH7.4系统功能调用系统功能使用“INT21H”作为调用的指令调用步骤如下:(1)设置入口参数入口参数是子程序运行所需要的数据,系统功能调用的入口参数通常是放在指定的内部寄存器器中,少数功能调用也可以没有入口参数。(2)由AH给出功能号。(3)执行中断指令INT21H。功能号:01H。入口参数:无。出口参数:AL=输入字符的ASCII码。功能:等待从键盘读入一个字符,将其ASCII码送入AL,同时将字符显示在屏幕上。调用方法:MOVAH,1INT21H说明:输入一个字符后,不需要回车。若只输入回车,则AL=0DH。功能号:0AH。入口参数:DS:DX=输入缓冲区首地址。出口参数:无。功能:从键盘读入一个字符串,存放DS:DX所指的