微机原理讲义(第四、五章汇编语言程序格式)

上传人:飞*** 文档编号:5995900 上传时间:2017-09-09 格式:DOC 页数:35 大小:175KB
返回 下载 相关 举报
微机原理讲义(第四、五章汇编语言程序格式)_第1页
第1页 / 共35页
微机原理讲义(第四、五章汇编语言程序格式)_第2页
第2页 / 共35页
微机原理讲义(第四、五章汇编语言程序格式)_第3页
第3页 / 共35页
微机原理讲义(第四、五章汇编语言程序格式)_第4页
第4页 / 共35页
微机原理讲义(第四、五章汇编语言程序格式)_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《微机原理讲义(第四、五章汇编语言程序格式)》由会员分享,可在线阅读,更多相关《微机原理讲义(第四、五章汇编语言程序格式)(35页珍藏版)》请在金锄头文库上搜索。

1、1第四章 汇编语言程序格式汇编语言的特点:(1)面向机器的程序设计语言,介于机器语言与高级语言之间的一种语言。(2)通常与机器语言的指令是一对一的关系。(3)比机器语言更易于阅读、编写和修改,比高级语言更能全面地反映硬件的特点与功能。(4)程序运行速度快,能充分运用硬件资源,所占存储空间少,能充分发挥计算机效能和进行精确控制等。(5)广泛应用于计算机系统的开发、高级语言编译程序的编制、编辑和调试等实用程序的编制等方面。第一节 汇编程序功能一、汇编语言程序建立及处理步骤编 辑 程 序 .asm 汇 编 程 序 .obj 连 接 程 序 .exe (1)选用一种编辑程序建立汇编语言源文件,扩展名为

2、:.asm(2)用汇编程序把源文件汇编成目标文件,扩展名为:.obj(3)用连接程序 link把目标文件及所用到的库文件或其他目标文件转换成可执行文件,扩展名为:.exe(4)dos 状态下,直接键入文件名即可执行。第二节 伪指令语句语句:是汇编语言的基本组成单位。2源程序指令类型:指令语句、伪指令语句、宏指令语句一个至少:在一个源程序中,至少要含有指令语句和伪指令语句。一、符号定义伪指令1、作用:有利于变量名的修改,提高编程和调试的效率。2、分类(1)等值语句格式:名字(符号) equ 表达式操作:把 equ右边表达式的值或符号赋给左边的名字(符号) 。说明:表达式可以是常数或数值表达式、地

3、址表达式、变量、标号名或助记符等equ 语句中,如在表达式中存在变量或标号,则必须在 equ语句前预先定义符号名不能重复定义。(2)等号语句( )格式:名字(符号)表达式操作:把等号右边表达式的值或符号赋给左边的名字。说明:表达式可以是常数或数值表达式、地址表达式、变量、标号名或助记符等equ 语句中,如在表达式中存在变量或标号,则必须在 equ语句前预先定义符号名可以多次定义。(注:符号定义伪指令只是为常量、变量、表达式等定义符号名,不分配存储单元)二、数据定义伪指令作用:主要用于描述数据和给数据赋值。语句格式:变量名 数据定义伪指令 表达式 1,表达式 2,;注释3变量名:可有可无,用符号

4、地址表示,与指令语句前的标号作用相同,只是后边不用冒号,汇编程序把它记以该语句所定义的第一个字节的偏移地址。表达式:可以是数值表达式、字符串表达式、带 dup的表达式。如是字符串表达式,必须用单引号/双引号括起来,各字符以 ASC码存放。注释:对该数据定义所完成的操作进行说明。数据定义伪指令:db:(1)用来定义字(2)如操作数是字符串,则字符个数要小于 255,并为每个字符分配一个字节存储单元(3)无论表达式结果是数据还是字符串,都是按地址递增顺序依次分配。Dw:(1)用来定义字,低位字节在低地址,高位字节在高地址。(2)操作数是字符串,字符个数小于等于 2,为每字符串分配两个字节单元(3)

5、二字符情况:前一个字符放在高地址,后一字符放在低地址处。一字符情况:高地址处放 00h,低地址处存放字符。注:db ab与 dw ab的区别 dd:(1)用来定义双字(2)操作数是字符串的情况:字符串最多包含两个字符,为每个字符串分配 4个字节单元,其中,低两位单元存放字符,高两位存 0。Dq:(1)用来定义 4个字(2)每个操作数占有 4个字Dt:(1)用来定义 5个字(2)操作数占有 10个字节,形成压缩的 BCD码。注:1、操作数?可保留存储空间,但不存入数据。2、操作数带复制操作符 dup的情况。格式:表达式 1 dup (表达式 2,)4(1)表达式 1必须是一个正整数,用来指定表达

6、式 2指示的操作数的重复次数。(2)dup 可嵌套使用(3)可用 dw或 dd把变量/标号的偏移地址(dw)或整个地址(dd)存入存储器,用 dd存入地址时,第一字为偏移地址,第二字为段地址。(4)类型属性:db dw dd dq dt1 2 4 8 10例:oper1 db ?,?oper2 dw ?,?mov oper1,0(字节指令)mov oper2,0(字指令)三、段定义伪指令1、段定义伪指令格式:段名 segment 定位类型 组合类型 类别名段名 endssegment/ends表示段的开始/结束, 可有可无,表示段的主体。段名:段的符号名,命名规则同变量和标号的命名规则,段名必

7、须一致。定位类型部分:对段的起始地址的规定(1)byte:表示可从任意处开始。(2)word:表示从字的边界开始。(3)para:表示从小段的边界开始,即段基址的低 4位为 0。隐含类型。(4)page 从页的边界开始,即段基址的低 8位为 0。组合类型部分:表示段之间的连接,有六种类型。(1)public:表示本段在连接时与其他同名段连接在一起,形成一个新的逻5辑段。(2)common:表示本段在连接时与其他的同名段具有相同的起始地址,产生一个覆盖段,连接后的长度是同名段中长度最大段的段长度。(3)none:表示本段在连接时与其他段没有关系,可按在源程序中各个逻辑段的顺序分配存储单元。隐含为

8、该类型。(4)aftilpression:表示本段的起始地址即为由 expression计算出来的值但不能用来指定代码段的段地址。(5)stack:表示本段的堆栈段,即自动产生一个堆栈段,并把所有同名段连成一个新的逻辑段,系统自动对堆栈段寄存器(cs)和堆栈指针(sp)进行初始化。(6)memroy:表示本段应被放在一个有其他段的前面。类别名部分:用连接时组成段组的名字。必须用单引号括起来。至少原则:在一个汇编语言源程序中,至少要含有代码段。注:汇编程序是一种分段结构,在编写一个源程序前,先要学会读程序。阅读程序要按照从大到小,从外向里的原则,先把程序的结构读懂,在按照层层分解的方法,查看2、

9、其他段的伪指令assume伪指令格式 1:assume 段寄存器名:段名,段寄存器,段名段名必须是段寄存器 cs,ds,es或 ss之一,段名必须是用 segment/ends定义过的段名.操作:把作定义的段与段寄存器关联起来。格式 2:assume nothing操作:用于取消前面由 assume所定义的段寄存器.注:(1)assume 伪指令语句不产生任何代码。(2)dos 环境下运行程序时,dos 的装入程序对 cs:cp和 ss:sp作了6正确的初始化,而 dos 所要通过的程序把地址装入段地址中。过程定义伪指令格式: 过程名 proc 类型属性:ret过段名 endp注: (1)程序

10、名是一个表示符,相当于程序入口的符号地址,命令规则同短名定义规则(2) 括起来的部分可有可无,prpc/endp 成对出现,表示一个过程的开始和结束。(3)属性部分:far 和 near 隐含 near属性.调用程序和子程序在同一代码段中,则段程序的属性使用 near.调用程序和子程序在不同代码段中,则子程序的属性使用 far. 五、其他伪指令语句1、程序开始和结束的指令(1)name 格式: name 名字功能:编程序将 name后面的名字作为模块的名字(2) title格式: title 名字操作:将其定义的名字指定为每一页打印的标题。说明:如程序中没使用 name伪操作,汇编程序则将 t

11、itle指令作定义的名字的前六个字符作为模块名,名字最多可含有 60个字符。(3)end格式:end 标题说明:标号指示程序开始执行的起始地址。7如果有多个程序模块相连接,只有主程序使用标号模块使用 end.2、对准伪指令(1)even格式:even 操作:使下一个字节地址成为偶数。(2)org格式:org 常数表达式.功能:使下一个字节地址成为常数表达式的植。3、基数控制伪指令汇编语言中数的表示:b:二进制、d:十进制、h:十六进制、o/q 八进制radix基数控制微操作:格式:.radix 表达式。表达式的值用来表示基数值8第三节 宏指令一、宏的使用1、宏定义格式:宏名 macro 形参

12、1,形参 2, ;宏定义体endm第四节 汇编语言程序格式格式:名字:操作数 操作数 注释注:(1)括起来的部分可有可无。各部分之间必须用间隙隔开(2)名字部分是一个符号名,操作码部分是一个指令码的助记符。操作数部分是由 n个表达式构成的,注释部分说明程序语句功能一、名字部分特点1、该部分可由字母、数字和专用字符(?、 , 、-$)构成,但数字不能放在名字部分的最前面.部分最长 31个字符.部分以冒号表示结束2、名字部分可以是标号或变量,用来表示中语句的符号地址,标号一定在 cs段内变量在除 cs段外的其他段中定义二、操作符部分操作符由助记符构成,即 cpu指令、伪指令、宏指令指令:汇编程序将

13、其翻译为机器语言指令9伪指令:汇编语言将根据其?要求的功能进行处理宏指令:汇编程序根据其定义展开三、操作数部分特点:由表达式组成,操作数个数由操作符决定,操作数之间用逗号隔开是常数、寄存器、标号、变量或是它们和不同运算符有序组合1、算术运算符:+,-,*,/,mod可用于数字表达式或地址表达式用于地址表达式时,只有当其结果有明确的物理意义时其结果才是有效的2、逻辑运算符:AND.OR.XOR.NOT逻辑运算按位进行操作,是用于数字表达式NOT 是单操作符,其他是双操作符3、关系运算符:eg(相等)me(不等)lt(小于)gt(大于)le(小于或等于)ge(大于或等于)关系运算符都是双操作数运算

14、符,操作数必须都是数字或是同一段内的两个存储单元地址所得的值是逻辑值,结果为真,值为 OFFFFH,结果为假,值为 04、数值回送运算符:offset,seg,type,length,size功能:把操作符的一些特征或部分存储器地址进行回送(1)OFFSET格式:OFFSET 变量/标号 功能:把变量/标号的偏移地址进行数值回送(2)SEG格式:SEG 标量/标号 功能:把定义标量/标号的段的段起始地址作为数值进行回送(3)type格式:type 功能:变量按类型属性回送,标号:near 回送-1,far 回送-210(4)length格式:length 变量 功能:dup 形式定义变量:回送

15、分配给该变量的 dup单元数,其他情况回送 1(5)size格式:size 变量 功能:回送分配给该变量的字节数,值相当于 length和type乘积5、属性运算符:ptr,short,this,high,low,段操作符(1)段属性操作段:用来表明一个标号、变量或地址表达式的段属性(2)ptr格式:类型 ptr 表达式 功能:为同一个存储单元赋予不同的类型属性(3)ort:用来定义 jmp指令的转向属性,使用它表示转向地址是在下一条指令地址的 127个字节范围内(4)this格式:this 属性或类型功能:该指令建立一个指定类型的或指定距离的地址操作数段地址和偏移地址与下一个存储单之地址相同

16、(5)high:该操作符可以把一个数或地址表达式的值的高位字节进行回送(6)low:该操作符可把一个数或地址表达式的值位字节进行回送四、注释部分:用来说明一段程序或指令的功能4.5汇编语言程序的上机过程一、建立工作环境二、汇编程序三、连接程序四、执行程序与调试1、执行:dos 下直接键入文件名2、调试11调试工具:debug(1)degug 中,命令参数中的数据和屏幕显示的株距均以以十之进制表示(2)dubug 指令只有一个字母、后面有一个或多个参数,参数之间用空格或逗号阁开,且命令是以回车符结束符命令(1)程序的装入调用 调 用 DEBUG时 装 入进 入 后 装 入通过命名命令 n和装载命令来装入可执行文件(2)退出命令 Q(3)运行命令g:连续运行命令格式:-g

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号