微型计算机汇编语言及汇编程序.ppt
《微型计算机汇编语言及汇编程序.ppt》由会员分享,可在线阅读,更多相关《微型计算机汇编语言及汇编程序.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 微型计算机汇编语言及汇编程序微型计算机汇编语言及汇编程序7.1 宏汇编语言的基本语法宏汇编语言的基本语法7.2 伪指令伪指令7.3 宏指令宏指令7.4 系统功能调用系统功能调用汇编语言汇编语言源程序源程序目的程序目的程序汇编程序汇编程序汇编汇编7.5 综合举例综合举例7.6 汇编语言程序设计汇编语言程序设计7.1 宏汇编语言的基本语法宏汇编语言的基本语法一、伪指令语句格式一、伪指令语句格式标号名标号名伪指令伪指令操作数操作数;注释注释 ,DATA1 DB 17HDB 78HDATA2 DW 617H,0A345H,89H说明说明:标号名可以是常量名、变量名、过程名、结构名、记录名等
2、标号名可以是常量名、变量名、过程名、结构名、记录名等二、常数、变量和标号二、常数、变量和标号1.常数常数8086/80888086/8088宏汇编中允许如下几种常数:宏汇编中允许如下几种常数:二、八、十、十六进制常数二、八、十、十六进制常数十进制科学表示法表示的实数,如:十进制科学表示法表示的实数,如:12.35E-212.35E-2字符串常数,如字符串常数,如ABAB值是值是4142H4142HABCD 41HABCD 41H,42H42H,43H43H,44H44H2.2.变量变量是代表存放在内存单元中的变化的数据。是代表存放在内存单元中的变化的数据。(1)变量的定义与预置变量的定义与预置
3、:DATASEG SEGMENT DATA1 DB 17H DATA2 DW 8976H DATA3 DD 45673212HDATASEG ENDSv段属性段属性v偏移量属性偏移量属性v类型属性类型属性标标号号是是一一条条指指令令语语句句的的符符号号地地址址。标标号号可可作作为为转转移移类类指指令令的的操操作作数数,即即转移地址。转移地址。v标号:在代码段中定义,后跟冒号标号:在代码段中定义,后跟冒号,位于指令语句左边位于指令语句左边 。3.标号标号【例】【例】符号地址表示。符号地址表示。NEXTNEXT:MOV ALMOV AL,SI SI DEC CX DEC CX JNE NEXT J
4、NE NEXT段属性:段属性:定义标号的段起始地址,标号的段属性总是在定义标号的段起始地址,标号的段属性总是在CSCS寄存器中。寄存器中。偏移地址:偏移地址:代表从代码段起始地址到标号位置之间的字节数。代表从代码段起始地址到标号位置之间的字节数。类型属性:类型属性:分分NEARNEAR和和FARFAR两类,两类,NEARNEAR表示在同一代码段内引用,表示在同一代码段内引用,FARFAR表示在段外引用。表示在段外引用。v标号有段、偏移及类型三种属性。标号有段、偏移及类型三种属性。表达式是由常数、寄存器、标号、变量和操作符组合而成。表达式是由常数、寄存器、标号、变量和操作符组合而成。1 1、算术
5、操作符、算术操作符三、表达式和运算符三、表达式和运算符算术运算符可用于数值表达式和地址表达式中,算术运算符可用于数值表达式和地址表达式中,例如:例如:MOV AL,10*5+4 ;数值表达式;数值表达式 MOV SI,OFFSET BUF+12 ;地址表达式;地址表达式 MOV CX,NUM2-NUM1 ;两地址差送;两地址差送CX MOV CX,NUM2+NUM1 ;无意义;无意义汇编语言程序使用的操作符有:汇编语言程序使用的操作符有:有有+、-、*、/和和MODMOD(取余)(取余)在使用地址表达式时要注意地址表达式的物理意义。在使用地址表达式时要注意地址表达式的物理意义。2、逻辑操作符、
6、逻辑操作符有有AND、OR、NOT和和XOR四个。只用于数值表达式中。四个。只用于数值表达式中。3、关系运算符、关系运算符有有EQ(相等)(相等),GT(大于)(大于),LT(小于)(小于)NE(不等)(不等),GE(大于或等于)(大于或等于),LE(小于或等于)(小于或等于)例如:例如:AND AL,78H AND 0FH等价于:等价于:AND AL,08HOR AL,3 AND 47H等价于:等价于:OR AL,3逻辑运算的结果为:逻辑运算的结果为:为真时,结果取为真时,结果取0FFFFH为假时,结果取为假时,结果取0注:注:关系操作符的两个操作数必须是数字或同一段内的地址关系操作符的两个
7、操作数必须是数字或同一段内的地址若若val5时,时,结果:结果:4.24.2、伪指令、伪指令汇编的一些汇编的一些伪指令伪指令用于用于定义符号定义符号,定义数据定义数据,分配内存单元分配内存单元,伪指令伪指令只向汇编语言提供有关信息,只向汇编语言提供有关信息,不产生机器代码。不产生机器代码。一、符号定义伪指令一、符号定义伪指令1、等值伪指令、等值伪指令EQU注注EQUEQU不能给一个符号重复定义不能给一个符号重复定义格式:格式:符号名符号名 EQU 表达式表达式功能:功能:给符号名定义一个值、别的符号名、表达式或助记符。给符号名定义一个值、别的符号名、表达式或助记符。CONS EQU 128DA
8、T1 EQU CONS+128B EQU MULAB EQU BXSI二、数据定义伪指令二、数据定义伪指令格式:格式:变量变量 操作符操作符 操作数操作数 ;注释;注释 功能:功能:给变量定义存储单元。给变量定义存储单元。操作符有:操作符有:DB DB,DWDW,DDDD,DFDF,DQDQ,DTDT注:注:用用DTDT定义的十进制数要加后缀定义的十进制数要加后缀D D,否则默认为,否则默认为BCDBCD数。数。2 2、等号伪指令、等号伪指令=与与EQUEQU类似,但在同一个程序中,类似,但在同一个程序中,=可以对一个符号重新定义。可以对一个符号重新定义。DATA SEGMENTVAR1 DB
9、 10HVAR2 DB 10,11,12 DB 0FFH,0BUF1 DW 1234H,5678HBUF2 DD 12345678HDATA ENDS10H0AH0BH0CHFFH00H34H12H78H56H78H56H34H12H(a)(a)、操作数是常数或表达式、操作数是常数或表达式例:例:DATADATA数据段中定义了字节、字和数据段中定义了字节、字和双字变量双字变量(b)(b)、操作数是?、操作数是?此时,只分配存储单元,不定义初值。此时,只分配存储单元,不定义初值。例:例:NUM1 DB 5,?,?,7 NUM2 DW?,?,?VAR1DATAVAR2BUF1BUF2(c)(c)、
10、操作数是字符串、操作数是字符串当定义的字符串中多于当定义的字符串中多于2个字符时,只能用个字符时,只能用DB定义。定义。注:注:STR2 DB AB STR2 DW BA STR2 DW AB等价等价BUF2 DW 1,2,3 DUP(6)等价于:等价于:BUF2 DW 1,2,6,6,6ARB1 DB 10 DUP(2)ARB2 DB 10H DUP(ABC)ARB3 DW 20 DUP(?)(?)(d)(d)、带、带DUPDUP的表达式的表达式变量名变量名DBDWDD表达式表达式1 DUP(表达式表达式2)如:如:STR1 DW ABCD 三、段定义伪指令三、段定义伪指令格式:格式:段名段
11、名 SEGMENTSEGMENT 定位定位 组合组合类型类型段长度段长度 ;段体;段体段名段名 ENDSENDS段定义伪指令应用举例段定义伪指令应用举例DATASEGMENT ;DATA段定义开始段定义开始 BUF1 DB 2DHDATAENDS ;DATA段定义结束段定义结束EXTRA SEGMENT ;EXTRA段定义开始段定义开始BUF2 DB?EXTRA ENDS ;EXTRA段定义结束段定义结束STAKSEGMENT ;STAK段定义开始段定义开始 TOP DW 50 DUP(?)STAK ENDS ;STAK段定义段定义四、段寻址伪指令四、段寻址伪指令 运行程序时,需要通过段寄存器
12、访问存储单元,运行程序时,需要通过段寄存器访问存储单元,ASSUMEASSUME指令就是用来建立段寄存器与段之间关系,但不能用来设置指令就是用来建立段寄存器与段之间关系,但不能用来设置段寄存器的内容。段寄存器的内容。三点说明三点说明格式:格式:ASSUME ASSUME 段寄存器:段名,段寄存器:段名,段寄存器:段名段寄存器:段名功能:功能:指示相关的段寄存器访问哪个逻辑段。指示相关的段寄存器访问哪个逻辑段。例如:例如:ASSUME ASSUME CS CS:CODECODE,DSDS:DATADATAASSUMEASSUME通常放在代码段的第一个语句通常放在代码段的第一个语句ASSUMEAS
13、SUME并没有给段寄存器赋值并没有给段寄存器赋值CSCS的值由的值由DOSDOS自动给加载的可执行文件赋的,其他段寄存自动给加载的可执行文件赋的,其他段寄存器的值需要通过器的值需要通过MOVMOV指令来设置指令来设置程序段程序段1:DATA SEGMENTPUBLIC VAR1 DB 5DATA ENDSCODE SEGMENTPUBLIC ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CODE ENDSEND START 格式:格式:PROC NEAR/FAR (缺省为(缺省为NEAR)RET ENDP五、过程定义伪指令五、过程定义伪指
14、令 六、六、置汇编地址计数器伪指令置汇编地址计数器伪指令ORGORGDATADATASEGMENTSEGMENT ORG ORG1010;置值为置值为1010 VAR1VAR1DW DW 1A0H1A0H,2FAH2FAH ORG ORG+5+5;置的值为置的值为14+514+5,即为,即为1919 VAR2VAR2DBDB 1 1,2 2,11 11,1212 N N EQU EQU-VAR2-VAR2;()()=23=23DATADATAENDSENDS格式:格式:ORG ORG 数值表达式数值表达式功能:将数值表达式的值赋给汇编地址计数器。数值表功能:将数值表达式的值赋给汇编地址计数器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 汇编语言 汇编程序
限制150内