微机原理及应用-ch7

微机原理及应用-ch7

ID:5652257

大小:553.50 KB

页数:54页

时间:2017-11-13

微机原理及应用-ch7_第1页
微机原理及应用-ch7_第2页
微机原理及应用-ch7_第3页
微机原理及应用-ch7_第4页
微机原理及应用-ch7_第5页
资源描述:

《微机原理及应用-ch7》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章汇编语言程序设计的基本方法和技巧7.1概述7.38086汇编语言程序设计的基本语法7.4汇编语言程序设计的基本方法和技巧7.7IBM-PC-DOS系统的功能调用可执行目标文件:“.EXE”目标代码文件:“.OBJ”,没有确定的物理地址,“.ASM”若有错,给出信息源程序文件:“.ASM”“.asm”——编辑edit汇编得到结果,观察结果是否正确,错误链接若干.OBJ调试MS-DOS下7.1概述7.38086汇编语言程序设计的基本语法指示性语句与指令性语句:指令性语句是用指令系统中的指令构成的语句。格式:[标号

2、:]操作码助记符[操作数][;注释]指示性语句是指示汇编程序进行汇编的操作(伪指令和宏指令)。格式:[名字]定义符[参数][;注释]指示性语句与指令性语句区别一个程序经汇编,连接和装入内存后,在执行程序之前:◢指示性语句的功能已经完成,故又称伪操作。◢而指令性语句的功能尚未完成,需控制CPU去执行,才能完成。一、源程序语句的组成NEAR:标号只能做段内转移和段内调用的目标地址。FAR:标号只能做段间转移和段间调用的目标地址标号:表示指令所在存储单元的首地址.具有段属性,段基址必须在CS段寄存器中,在段内有偏移量。

3、两种类性:NEAR和FARJMPLE(0FFFFH:0)JMP0ffff:0 JMPdwordptr[bx]JMPArray[1234h]名字:后不带‘:’,除存储器间接寻址外,名字不作为转移指令和调用指令的目的操作数。在程序中,标号和名字只能出现一次助记符由指令系统规定。定义符由汇编程序规定。都称为关键字或保留字,不能用作标号、名字、变量名。二、操作数和参数可以是常量、变量、寄存器、标号和表达式,不止一个,用‘,’分开1.常量在指令性语句中可以做立即数,也可以做偏移量e.g.MOVAL,5AHMOVAX,[SI+

4、66H]在指示性语句中一般作为参数或数据项e.g.ABCDW1357H;定义字2.变量代表存放在某存储单元的数据,若变量在名字中出现,称为对变量的定义,就是给变量分配存储单元,且对这个存储单元赋一个符号名——变量名。同时将这些存储单元预置初值,可以通过DB、DW、DD等对变量定义。三种属性段属性(一定属于某个段)偏移属性(在段内有偏移量)类型属性,指变量长度:DB、DD、DW、DQ、DT3.表达式与运算符(1)算术运算符①+、-、*、/:参加运算的数和结果均是整数,除法运算的结果只取整数部分e.g.80/9的值为8

5、②MOD:除法取余SHL/SHR:逻辑左/右移,最右/左边以0补,当移位次数≧16时,结果恒为0③表达式1[表达式2][]下标运算符,表示加法,把表达式1和表达式2相加形成一个存储器(内存)地址e.g.MOVAX,DATA1[10H]MOVAX,DATA1+10H等价(2)逻辑运算符AND、OR、XOR、NOT注:有些运算符与指令助记符是相同的,但是概念不同在语句中所处的字段不同,指令位于操作码段,运算符位于操作数段指令在程序运行时执行,运算符在运算在汇编时完成指令操作对象是操作数,运算符处理对象是某一个具体的数A

6、NDAL,24HAND0FH(3)关系运算符EQ、NE、LT、LE、GT、GE关系运算符连接两数(这两个数必须同时是数字或同一段内的两个地址)组成一个判定式,若判定式正确(为真),运算结果为0FFFFH,若为假,则运算结果为0000He.g.(PORT)=25MOVAX,25EQPORT汇编“MOVAX,0FFFFH”MOVAX,25NEPORT汇编“MOVAX,0000H”(4)分析运算符①SEG符号名;求段基址e.g.标号SLAB处于数据段,且段基址为46FFH,则MOVAX,SEGSLAB;(AX)=46FF

7、H②OFFSET符号名;求段内偏移量e.g.标号SLAB处于数据段,且与数据段基址的距离为10H MOVSI,OFFSETSLAB;(SI)=0010H③TYPE符号名;求符号名类型值e.g.DATA1DB12H,34H,56HDATA2DW7890HMOVAX,TYPEDATA1;(AX)=1MOVBX,TYPEDATA2;(BX)=2类型类型值1B12B24B48B810B10NEAR-1FAR-2④SIZE符号名;求为符号名分配的字节数e.g.DATA1DB50DUP(0)DATA2DD20DUP(0)MOV

8、AX,SIZEDATA1;(AX)=1*50=50MOVAX,SIZEDATA2;(AX)=4*20=80必须是用“DUP()”定义的数据项⑤LENGTH符号名;求为符号名分配的项数SIZE、LENGH、TYPE之间的关系:SIZE符号名=(LENGTH符号名)*(TYPE符号名)e.g.对于“ABCDW100DUP(?)”TYPEABC;汇编结果为2LEN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。