第7章-微型计算机汇编语言及汇编程序——郑学坚、周斌《微型计算机原理及应用》课件.ppt
《第7章-微型计算机汇编语言及汇编程序——郑学坚、周斌《微型计算机原理及应用》课件.ppt》由会员分享,可在线阅读,更多相关《第7章-微型计算机汇编语言及汇编程序——郑学坚、周斌《微型计算机原理及应用》课件.ppt(152页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1电子信息类专业学科基础课程电子信息类专业学科基础课程1授课教师:侯俊钦授课教师:侯俊钦第七章 微型计算机汇编语言及汇编程序2第7章 微型计算机汇编语言及汇编程序章节目录宏宏汇编语言的基本言的基本语法法伪指令指令123宏指令宏指令4系系统功能功能调用用5汇编程序的功能及程序的功能及汇编过程程6汇编语言程序言程序设计31 宏汇编语言的基本语法n指令指令语句、句、伪指令指令语句格式句格式指令指令语句句伪指令指令语句句定义符号、数据,分配内存单元,不产生机器代码定义符号、数据,分配内存单元,不产生机器代码汇编时翻译成二进制机器代码汇编时翻译成二进制机器代码指令助记符指令助记符操作数操作数;注释;注释
2、标号:标号:,伪指令伪指令操作数操作数;注释;注释标号名标号名,指令语句标号后有冒号指令语句标号后有冒号“:”伪指令语句名字后没有冒号伪指令语句名字后没有冒号451 宏汇编语言的基本语法3.操作数字段操作数字段本字段是否需要,需要几个,需要什么本字段是否需要,需要几个,需要什么样的操作数等都由的操作数等都由伪指令字段中指令字段中伪指令来确定。操作数可以是一个常数指令来确定。操作数可以是一个常数(二二进制、制、十十进制、十六制、十六进制等制等)、字符串、常量名、字符串、常量名、变量名、量名、标号、一号、一些些专用的符号用的符号(如如BYTE,FAR,PARA等等)。4.注注释字段字段这是一个任是
3、一个任选字段,它必字段,它必须以分号以分号为开始,它的作用与指令开始,它的作用与指令语句的注句的注释字段相同。字段相同。n伪指令指令语句句61 宏汇编语言的基本语法n常数、常数、变量和量和标号号1.常数与常量常数与常量常数是没有任何属性的纯数值。在汇编期间,它的值已能完常数是没有任何属性的纯数值。在汇编期间,它的值已能完全确定,且在程序运行中也不会发生变化。有以下几种类全确定,且在程序运行中也不会发生变化。有以下几种类型:型:(1)二进制数:二进制数:以字母以字母B结尾的,由结尾的,由0和和1组成的数字序列,如组成的数字序列,如01011010B。(2)八进制数:八进制数:以字母以字母O或或Q
4、结尾的结尾的07数字序列,如数字序列,如723Q,35O。(3)十进制数:十进制数:09数字序列,可以用字母数字序列,可以用字母D结尾,也可以没有结尾字母,结尾,也可以没有结尾字母,如如129,129D。指令和指令和伪指令指令语句中操作数的基本句中操作数的基本组成部分,包含有数成部分,包含有数值和和属性两部分属性两部分71 宏汇编语言的基本语法(4)十六十六进制数:制数:以字母以字母H结尾,由数字尾,由数字09和字母和字母AF(或或af)组成的序列,成的序列,如如3A5BH,0FH。为了区了区别由由AF组成的是一个十六成的是一个十六进制制数数还是一个是一个标识符,凡以字母符,凡以字母AF为起始
5、的一个十六起始的一个十六进制制数,必数,必须在前面冠以数字在前面冠以数字“0”,否,否则汇编程序程序认作作标识符。符。(5)实数:数:它由整数、小数和指数部分它由整数、小数和指数部分组成,称成,称为浮点表示法。浮点表示法。实数数一般用十一般用十进制数形式制数形式给出,格式:出,格式:整数部分整数部分.小数部分小数部分E指数部分指数部分尾数:整数和小数部分形成尾数:整数和小数部分形成这个数的个数的值,可以是,可以是带符号的数。符号的数。指数:由指数指数:由指数标识符符E开始,它表示了开始,它表示了值的大小。的大小。例例5.213E-4。1.常数与常量常数与常量n常数、常数、变量和量和标号号81
6、宏汇编语言的基本语法常数主要出常数主要出现在:在:(1)指令指令语句中源操作数中作立即数,它句中源操作数中作立即数,它应与目的操作数的与目的操作数的位数相一致,可以是位数相一致,可以是8位或位或16位,例如:位,例如:MOVAX,0A5F1H(2)在指令在指令语句的基址加句的基址加变址的址的寻址方式中作位移量,例如:址方式中作位移量,例如:MOVBX,SI+32H(3)在数据定在数据定义伪指令中,例如:指令中,例如:DB12H;定定义一个字一个字节数据数据DW1234H;定定义一个字数据一个字数据DD12345678H;定定义一个双字数据一个双字数据DBABCD;定定义4个字个字节的字符串数据
7、的字符串数据(6)(6)字符串常数:字符串常数:用引号括起来的一个或多个字符。用引号括起来的一个或多个字符。这些字符以些字符以ASCIIASCII码形式形式存存储在内存中。如在内存中。如“AB”AB”,在内存中就是,在内存中就是41H41H,42H42H。n常数、常数、变量和量和标号号9101 宏汇编语言的基本语法2.变量变量段属性:段属性:定定义变量的段起始地址,量的段起始地址,变量的段属性量的段属性总是在一是在一个段寄存器中。个段寄存器中。偏移属性:即偏移属性:即变量的偏移地址量的偏移地址类型属性:定型属性:定义了了该变量所保留的字量所保留的字节数。数。v变量有段、偏移及量有段、偏移及类型
8、三种属性。型三种属性。在数据段、附加数据段或堆栈段中定义,数据在程序运在数据段、附加数据段或堆栈段中定义,数据在程序运行期间随时可以修改。行期间随时可以修改。代表从段起始地址到变量位置之间的字节数。代表从段起始地址到变量位置之间的字节数。BYTE和和DB一个字节长,一个字节长,WORD和和DW两个字节长,两个字节长,DWORD和和DD四个字节长,四个字节长,FWORD和和DF六个字节长等等。六个字节长等等。11121 宏汇编语言的基本语法?表达式:表达式:?表示可预置任何内容。表示可预置任何内容。例如:例如:DA_BDB?,?DA_WDW?,?字符串表达式:字符串表达式:1)DB伪指令:伪指令
9、:为字符串中每一个字符分配一个字节单元。为字符串中每一个字符分配一个字节单元。字符串必须是用引号括起来且不超过字符串必须是用引号括起来且不超过255个字符。个字符。字符串自左至右以字符的字符串自左至右以字符的ASCII码按地址码按地址递增的排列顺序依次存放。递增的排列顺序依次存放。例如:例如:STRING1DBABCDEF41H42H43H44H45H46HSTRINGS1地地址址由由低低到到高高2.变量变量13141 宏汇编语言的基本语法 带DUP表达式:表达式:DUP是定是定义重复数据操作符。格式是:重复数据操作符。格式是:DB变量名量名DW表达式表达式1 DUP(表达式表达式2)DD 表
10、达式表达式1:重复的次数,重复的次数,表达式表达式2:是重复的内容。例如:是重复的内容。例如:D_B1DB20HDUP(?)D_B2DB10HDUP(ABCD)D_W1DW10HDUP(4)n思考:思考:下列伪指令语句中数据在内存单元怎么放置?下列伪指令语句中数据在内存单元怎么放置?A代代表哪个单元?表哪个单元?ADB50,60,70,80DW50,60,70,80DD50,60,70,80151 宏汇编语言的基本语法例:例:DATA SEGMENT ;段定;段定义 DT1 DB 10,3*20 DT2 DB ABC,44H,45H DT3 DW 100H,5 DT4 DD 0FFFFH DT
11、5 DB 0,?,?,?,?,?,?,0 AA EQU$DT1;$汇编地址地址计数器,数器,记录当前当前汇编地址地址为14H。DT6 DB 2 DUP(0,2 DUP(2,3)DT7 DW DT2 DT8 DD DT4 DATA ENDS161 宏汇编语言的基本语法标号是一条指令号是一条指令语句的符号地址。句的符号地址。标号可作号可作为转移移类指令的操作数,即指令的操作数,即转移地址。移地址。v标号:在代号:在代码段中定段中定义,后跟冒号,后跟冒号“:”,位于指令位于指令语句左句左边 。【例例】标号的使用号的使用,即即符号地址的使用。符号地址的使用。NEXTNEXT:MOV ALMOV AL,
12、SISI DEC CX DEC CX JNZ NEXT JNZ NEXT段属性:段属性:定定义标号的段起始地址,号的段起始地址,标号的段属性号的段属性总是在是在CSCS寄存器中。寄存器中。偏移地址:偏移地址:代表从代代表从代码段起始地址到段起始地址到标号位置之号位置之间的字的字节数。数。类型属性:型属性:分分NEARNEAR和和FARFAR两两类,NEARNEAR表示表示该标号在同一代号在同一代码段内引用,段内引用,FARFAR表示表示该标号在段外引用。号在段外引用。v标号有段、偏移及号有段、偏移及类型三种属性。型三种属性。3.3.标号号171 宏汇编语言的基本语法算术运算符算术运算符逻辑运算
13、符逻辑运算符关系运算符关系运算符分析运算符分析运算符+、*、/、MOD与数学运算符的意义相同。与数学运算符的意义相同。取模是取余数。取模是取余数。例例:82MOD16;结果为结果为220HMOD7;结果为结果为4AND、OR、NOT、XOR运算结果是一个常数运算结果是一个常数.EQ、NE、LT、GT、LE、GE两个表达式比较时,两个表达式比较时,表达式表示表达式表示方法方法/性质性质要相同要相同关系成立,结果为全关系成立,结果为全1;不成立;不成立时,为全时,为全0例如:指令例如:指令MOVBX,32EQ45等价于等价于MOVBX,0;综合运算符综合运算符SEG、OFFSET、LENGTH、S
14、IZE、TYPE把存储单元地址分解为段地址和把存储单元地址分解为段地址和偏移地址偏移地址THIS、PTR规定存储单元的性质规定存储单元的性质181 宏汇编语言的基本语法1 1、算术、算术运算符运算符算术运算符完成算术运算算术运算符完成算术运算,它包括它包括(加法加法)、(减法减法)、*(乘法乘法)、(除除)、MOD(MOD(求余求余)以及以及SHL(SHL(左移左移,左移左移1 1位相位相当于乘当于乘2)2)和和SHR(SHR(右移右移,右移右移1 1位相当于除位相当于除2)2)共七种运算。共七种运算。例例:MOV ALMOV AL,BUFFER+3BUFFER+3;将;将BUFFERBUFF
15、ER字节单元以后的第三单元的内容送字节单元以后的第三单元的内容送ALALMOV AHMOV AH,3*23*25 MOD 35 MOD 3 ;将表达式;将表达式3*23*25 5 MOD 3MOD 3的值送的值送AHAHMOV BHMOV BH,010lB SHL 4010lB SHL 4 ;将二进制数;将二进制数0101B0101B左移四次后送左移四次后送BHBHMOV BLMOV BL,01010000B SHR 401010000B SHR 4;将二进制数;将二进制数01010000B01010000B右移四次后送右移四次后送BLBLn表达式与运算符表达式与运算符19201 宏汇编语言的
16、基本语法例例:MOV AX MOV AX,2 LT 5 2 LT 5 汇编成汇编成:MOV AXMOV AX,0FFFFH0FFFFH;2;2小于小于5 5关系成立关系成立 MOV AX MOV AX,2 GT 52 GT 5 汇编成汇编成:MOV AXMOV AX,0 0 ;2 ;2大于大于5 5关系不成立关系不成立 AND AND AXAX,(NUMB(NUMB LT LT 5)5)AND AND 30)30)OR OR(NUMB(NUMB GE GE 5)5)AND AND 20)20)当当NUMBNUMB5 5时,时,汇编成汇编成 AND AXAND AX,3030 NUMB5 NUM
17、B5时,时,汇编成汇编成 AND AXAND AX,2020v AND AND出现在操作符位置是助记符,出现在操作数位置是伪指出现在操作符位置是助记符,出现在操作数位置是伪指令。令。211 宏汇编语言的基本语法4 4数值返回运算符数值返回运算符(分析运算符分析运算符)v 数数值值返返回回运运算算符符是是对对存存储储器器地地址址进进行行运运算算的的。它它可可以以将将存储器地址的三个重要属性,即存储器地址的三个重要属性,即段段、偏移量偏移量和和类型类型分离出来。分离出来。v 数数值值返返回回运运算算符符共共有有五五个个:SEGSEG、OFFSETOFFSET、TYPETYPE、SIZESIZE和和
18、LENGTHLENGTH,其中其中SIZESIZE和和LENGTHLENGTH只对数据存储器地址操作数有效。只对数据存储器地址操作数有效。例例:TABLE DW 67,89 .MOV AX,SEG TABLE MOV BX,OFFSET TABLE MOV CX,TABLE (2)OFFSET(2)OFFSET 格式格式:OFFSET OFFSET 符号名符号名 OFFSETOFFSET运运算算符符返返回回一一个个变变量量或或标标号号的的段段内内偏偏移移地地址址值值,是是程程序设计中常用的运算符。序设计中常用的运算符。(1)SEG(1)SEG格式格式:SEG SEG 符号名符号名(变量名或标号
19、名变量名或标号名)SEGSEG用来求取一个符号名的用来求取一个符号名的段基址段基址。22231 宏汇编语言的基本语法 例例 DATA DATA是从存是从存储器器实际地址地址02000H02000H开始的一个数据段如下开始的一个数据段如下:DATA SEGMENTDATA SEGMENT VAR1 DB 20 VAR1 DB 20,3030 VAR2 DW 2000H VAR2 DW 2000H,3000H3000H VAR3 DD 22002200H VAR3 DD 22002200H,33003300H33003300H DATA ENDSDATA ENDS MOV BX MOV BX,SE
20、G VAR1 SEG VAR1 汇编成成:MOV BX:MOV BX,0200H0200H MOV CXMOV CX,SEG VAR2 SEG VAR2 汇编成成:MOV CX:MOV CX,0200H0200H MOV DXMOV DX,SEG VAR3 SEG VAR3 汇编成成:MOV DX:MOV DX,02000200H HMOV MOV BXBX,OFFSET OFFSET VAR2VAR2汇汇编编成成:MOV MOV BXBX,2 2 ;变变量量VAR2VAR2的的偏偏移量为移量为2.2.汇汇编编程程序序将将变变量量的的偏偏移移地地址址送送到到BXBX中中,相相当当于于指指令令:
21、LEA BXLEA BX,VAR2VAR2TYPE VAR1TYPE VAR11 1 TYPE VAR2TYPE VAR22 2 TYPE VAR3TYPE VAR34 4241 宏汇编语言的基本语法DATA SEGMENT N1 DW 10 DUP(0)N2 DB 8 DUP(0)N3 DW 5 DUP(2)DATA ENDSCODE SEGMENT MOV AL,LENGTH N1 ;10ALMOV BL,LENGTH N2 ;8BLMOV CL,LENGTH N3 ;5CL CODE ENDS 例例 25261 宏汇编语言的基本语法(1)PTR(1)PTR(改变新类型改变新类型)PTRP
22、TR用来将符号名改为新的类型用来将符号名改为新的类型.但但不实际分配不实际分配存储单元。存储单元。格式格式:类型类型 PTR PTR 符号名符号名PTRPTR将将它它左左边边的的类类型型指指定定给给右右边边的的符符号号名名。新新的的类类型型由由PTRPTR指指定定,以以前前的的类类型型则则由由定定义义此此存存储储单单元元时时的的伪伪指指令令(DB(DB、DWDW等等)确定。确定。在在PTRPTR表达式中出现的类型可以是表达式中出现的类型可以是BYTEBYTE、WORDWORD、DWORD DWORD、NEARNEAR、FARFAR等。等。例例.VAR1 DW 2030HVAR1 DW 2030
23、H;此时,此时,VAR1VAR1的当前类型为的当前类型为WORDWORD。应用应用1 1:用用PTRPTR建立新的变量建立新的变量VAR2VAR2和和VAR3VAR3 VAR2 EQU BYTE PTR VAR1VAR2 EQU BYTE PTR VAR1 VAR3 EQU BYTE PTR VAR1+1VAR3 EQU BYTE PTR VAR1+1 VAR1 VAR1与与VAR2VAR2为同一存储单元为同一存储单元,但类型却不同。但类型却不同。TYPE VAR1TYPE VAR12 2;VAR1VAR1是字型的是字型的 TYPE VAR2 TYPE VAR21 1;VAR2VAR2是字节型
24、的是字节型的271 宏汇编语言的基本语法例1:DTA DB 33H,44H MOV AX,DTA MOV AX,WORD PTR DTA 表示临时改变DTA为字类型。例2:MOV SI,55H MOV BYTE PTR SI,55H INC BX INC WORD PTR BX 明确操作数类型。例3:A DW 1122H,3344H ;变量A为字类型 B EQU BYTE PTR A ;变量B字节单元将同一存储单元用不同类型的变量(或标号)来表示。如:MOV AX,A MOV AL,B 执行结果均是:AL22H281 宏汇编语言的基本语法(2).THIS(2).THISTHISTHIS运运算算
25、符符像像PTRPTR一一样样,可可以以用用来来建建立立一一个个特特殊殊类类型型的的存存储储器器地地址址操操作作数数,而而不不实实际际为为它它分分配配新新的的存存储储单单元元。用用THISTHIS建建立立的的存存储储器器地地址址操操作作数数的的段段和和偏偏移移量量部部分分与与目目前前所所能能分分配配的下一个存储单元的段和偏移量相同,但类型由的下一个存储单元的段和偏移量相同,但类型由THISTHIS指定。指定。格式格式:符号名符号名 THIS THIS 类型类型 ;符号名是这种类型符号名是这种类型(新新)凡是在凡是在PTRPTR中可以出现的类型,在中可以出现的类型,在THISTHIS中也允许出现。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理及应用 微型计算机 汇编语言 汇编程序 郑学坚 周斌 原理 应用 课件
限制150内