汇编语言程序设计及上机指导5汇编语言语法.ppt
《汇编语言程序设计及上机指导5汇编语言语法.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计及上机指导5汇编语言语法.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022/12/311重点大学计算机专业系列教材重点大学计算机专业系列教材重点大学计算机专业系列教材重点大学计算机专业系列教材第第5 5章章 汇编语言语法汇编语言语法 【本章提要本章提要本章提要本章提要】本章以本章以本章以本章以IntelIntelIntelIntel系列微处理器的指令系统和宏汇编工具系列微处理器的指令系统和宏汇编工具系列微处理器的指令系统和宏汇编工具系列微处理器的指令系统和宏汇编工具MASM6.MASM6.MASM6.MASM6.X X X X为主体,介绍汇编语言的基本语法和伪指令,实现简单的为主体,介绍汇编语言的基本语法和伪指令,实现简单的为主体,介绍汇编语言的基本语法和伪
2、指令,实现简单的为主体,介绍汇编语言的基本语法和伪指令,实现简单的汇编语言程序设计。汇编语言程序设计。汇编语言程序设计。汇编语言程序设计。【学习目标学习目标学习目标学习目标】熟练掌握进行汇编语言程序设计的基本语法熟练掌握进行汇编语言程序设计的基本语法熟练掌握进行汇编语言程序设计的基本语法熟练掌握进行汇编语言程序设计的基本语法 熟练掌握伪指令以及宏结构的应用熟练掌握伪指令以及宏结构的应用熟练掌握伪指令以及宏结构的应用熟练掌握伪指令以及宏结构的应用 熟练掌握利用熟练掌握利用熟练掌握利用熟练掌握利用MASM6.XMASM6.XMASM6.XMASM6.X工具对程序进行汇编的工具对程序进行汇编的工具对
3、程序进行汇编的工具对程序进行汇编的具体方法具体方法具体方法具体方法2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回2oo指令指令指令指令:是可执行的,汇编后由相应的机器代码所取代是可执行的,汇编后由相应的机器代码所取代是可执行的,汇编后由相应的机器代码所取代是可执行的,汇编后由相应的机器代码所取代;oo伪指令伪指令伪指令伪指令:是不可执行的,只是在源程序汇编期间由汇编程序处理是不可执行的,只是在源程序汇编期间由汇编程序处理是不可执行的,只是在源程序汇编期间由汇编程序处理是不可执行的,只是在源程序汇编期间由汇编程序处理的命令,指示汇编程序为数据分配内存空
4、间,或者提供段定义的命令,指示汇编程序为数据分配内存空间,或者提供段定义的命令,指示汇编程序为数据分配内存空间,或者提供段定义的命令,指示汇编程序为数据分配内存空间,或者提供段定义等信息,不产生任何机器代码等信息,不产生任何机器代码等信息,不产生任何机器代码等信息,不产生任何机器代码 源程序源程序可执行文件可执行文件目标模块目标模块文本编辑器文本编辑器汇编程序汇编程序连接程序连接程序调试程序调试程序机器语言机器语言:计算机能够直接识别与执行计算机能够直接识别与执行 高级语言高级语言:是完全独立于机器的通用语言,效率低:是完全独立于机器的通用语言,效率低,面向面向 过程、面向对象,必须译成机器语
5、言。过程、面向对象,必须译成机器语言。汇编语言汇编语言:符号化语言。用指令的助记符、符号地址、标:符号化语言。用指令的助记符、符号地址、标 号等编写程序的语言号等编写程序的语言。5.1 5.1 概述概述2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回35.1.1 5.1.1 汇编语言程序的基本概念汇编语言程序的基本概念 指令与伪指令的集合构成汇编语言语句指令与伪指令的集合构成汇编语言语句指令与伪指令的集合构成汇编语言语句指令与伪指令的集合构成汇编语言语句.MODEL SMALL .MODEL SMALL .MODEL SMALL .MODEL SMAL
6、L ;定义内存工作模式为小模式定义内存工作模式为小模式定义内存工作模式为小模式定义内存工作模式为小模式 .386 ;.386 ;.386 ;.386 ;定义指令系统为定义指令系统为定义指令系统为定义指令系统为80386803868038680386指令集指令集指令集指令集 .STACK .STACK .STACK .STACK ;定义定义定义定义1K1K1K1K个字节的堆栈段个字节的堆栈段个字节的堆栈段个字节的堆栈段 .DATA .DATA .DATA .DATA ;数据段开始数据段开始数据段开始数据段开始DATA1 DD 12340000H DATA1 DD 12340000H DATA1
7、DD 12340000H DATA1 DD 12340000H ;定义第一个定义第一个定义第一个定义第一个32323232位数据的值为位数据的值为位数据的值为位数据的值为12340000H 12340000H 12340000H 12340000H DATA2 DD 5678H DATA2 DD 5678H DATA2 DD 5678H DATA2 DD 5678H ;定义第二个定义第二个定义第二个定义第二个32323232位数据的值为位数据的值为位数据的值为位数据的值为5678H 5678H 5678H 5678H SUM DD SUM DD SUM DD SUM DD?;定义用来存放前两个
8、数据之和的第三个数据定义用来存放前两个数据之和的第三个数据定义用来存放前两个数据之和的第三个数据定义用来存放前两个数据之和的第三个数据 .CODE ;.CODE ;.CODE ;.CODE ;代码段开始代码段开始代码段开始代码段开始,数据段结束数据段结束数据段结束数据段结束 .STARTUP .STARTUP .STARTUP .STARTUP ;程序开始程序开始程序开始程序开始 MOV EAX,DATA1 MOV EAX,DATA1 MOV EAX,DATA1 MOV EAX,DATA1 ;取第一个数到取第一个数到取第一个数到取第一个数到EAXEAXEAXEAX ADD EAX,DATA2
9、ADD EAX,DATA2 ADD EAX,DATA2 ADD EAX,DATA2 ;求和求和求和求和 MOV SUM,EAX MOV SUM,EAX MOV SUM,EAX MOV SUM,EAX ;保存结果保存结果保存结果保存结果(12345678H)(12345678H)(12345678H)(12345678H)至至至至SUMSUMSUMSUM .EXIT 0 .EXIT 0 .EXIT 0 .EXIT 0 ;程序结束程序结束程序结束程序结束,正常返回到操作系统正常返回到操作系统正常返回到操作系统正常返回到操作系统 END END END END ;结束汇编结束汇编结束汇编结束汇编20
10、22/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回45.1.2 5.1.2 5.1.2 5.1.2 汇编语言的基本语法汇编语言的基本语法汇编语言的基本语法汇编语言的基本语法一、字符集一、字符集一、字符集一、字符集oo英文字符:英文字符:英文字符:英文字符:A A A AZ Z Z Z z z z zoo数字字符:数字字符:数字字符:数字字符:0 0 0 09 9 9 9oo算术运算符:算术运算符:算术运算符:算术运算符:/oo关系运算符:关系运算符:关系运算符:关系运算符:oo分隔符:分隔符:分隔符:分隔符:,(,(,(,(逗号逗号逗号逗号);();();(
11、);(分号分号分号分号)()()()()()()()(括号括号括号括号)()()()(引号引号引号引号)(空格(空格(空格(空格)TAB()TAB()TAB()TAB(制表符制表符制表符制表符)oo控制符:控制符:控制符:控制符:CRCRCRCR(回车)(回车)(回车)(回车)LFLFLFLF(换行)(换行)(换行)(换行)FFFFFFFF(换页)(换页)(换页)(换页)oo其它字符:其它字符:其它字符:其它字符:$&_$&_$&_$&_(下划线)(下划线)(下划线)(下划线)?%?%?%?%!二、标识符二、标识符二、标识符二、标识符1 1 1 1)标识符的第一个字符必须是字母、问号)标识符的
12、第一个字符必须是字母、问号)标识符的第一个字符必须是字母、问号)标识符的第一个字符必须是字母、问号“?”?”?”?”、“”符、或下划线符、或下划线符、或下划线符、或下划线“_”;_”;_”;_”;2 2 2 2)从第二个字符开始可以是字母、数字、或)从第二个字符开始可以是字母、数字、或)从第二个字符开始可以是字母、数字、或)从第二个字符开始可以是字母、数字、或“?”?”?”?”、“”、“_”_”_”_”;3 3 3 3)一个标识符的长短可以由)一个标识符的长短可以由)一个标识符的长短可以由)一个标识符的长短可以由1 1 1 131313131个字符组成。个字符组成。个字符组成。个字符组成。例如
13、:例如:例如:例如:X,GAM_31X,GAM_31X,GAM_31X,GAM_31,?JACK5?JACK5?JACK5?JACK5是正确的;而是正确的;而是正确的;而是正确的;而8P,DATA 88P,DATA 88P,DATA 88P,DATA 8是不正确的。是不正确的。是不正确的。是不正确的。2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回5三、保留字三、保留字pp寄存器名、指令助记符、伪操作命令、表达式运算寄存器名、指令助记符、伪操作命令、表达式运算寄存器名、指令助记符、伪操作命令、表达式运算寄存器名、指令助记符、伪操作命令、表达式运算符,以
14、及属性操作符等都是系统专用的保留字。这符,以及属性操作符等都是系统专用的保留字。这符,以及属性操作符等都是系统专用的保留字。这符,以及属性操作符等都是系统专用的保留字。这些保留字是不能用作标识符的。些保留字是不能用作标识符的。些保留字是不能用作标识符的。些保留字是不能用作标识符的。四、语句四、语句oo一条语句一般只占一行,超过一行时必须用续行符一条语句一般只占一行,超过一行时必须用续行符一条语句一般只占一行,超过一行时必须用续行符一条语句一般只占一行,超过一行时必须用续行符号号号号“”指示指示指示指示oo两条语句不能写在同一行。两条语句不能写在同一行。两条语句不能写在同一行。两条语句不能写在同
15、一行。oo语句可以有注释,一般写在语句之后或单独占一行,语句可以有注释,一般写在语句之后或单独占一行,语句可以有注释,一般写在语句之后或单独占一行,语句可以有注释,一般写在语句之后或单独占一行,是以是以是以是以“;”开始的字符串。开始的字符串。开始的字符串。开始的字符串。2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回65.2 5.2 汇编语言的数据和表达式汇编语言的数据和表达式oo汇编语言能识别的数据是常量、变量和标号。汇编语言能识别的数据是常量、变量和标号。汇编语言能识别的数据是常量、变量和标号。汇编语言能识别的数据是常量、变量和标号。5.2.1
16、5.2.1 5.2.1 5.2.1 常量常量常量常量oo常量是汇编时已经确定的值,主要用于伪指令中给变量赋值,常量是汇编时已经确定的值,主要用于伪指令中给变量赋值,常量是汇编时已经确定的值,主要用于伪指令中给变量赋值,常量是汇编时已经确定的值,主要用于伪指令中给变量赋值,或作为指令语句中的立即数或存储器操作数的组成部分。或作为指令语句中的立即数或存储器操作数的组成部分。或作为指令语句中的立即数或存储器操作数的组成部分。或作为指令语句中的立即数或存储器操作数的组成部分。一常量的类型一常量的类型一常量的类型一常量的类型数据形式数据形式数据形式数据形式格格格格 式式式式 取取取取值值值值范范范范围围
17、围围举举举举例例例例注注注注 释释释释二二二二进进进进制数制数制数制数BB0 01 110010011B10010011B二二二二进进进进制数以制数以制数以制数以B B结结结结尾尾尾尾八八八八进进进进制数制数制数制数QQ0 07 7123Q123Q八八八八进进进进制数以制数以制数以制数以QQ结结结结尾尾尾尾十十十十进进进进制数制数制数制数DD0 09 9256D256D,34583458十十十十进进进进制数以制数以制数以制数以D D结结结结尾或者缺省尾或者缺省尾或者缺省尾或者缺省十六十六十六十六进进进进制数制数制数制数HH0 09 9 A AF F0A3H0A3H,12345H12345H十六
18、十六十六十六进进进进制数以制数以制数以制数以HH结结结结尾,尾,尾,尾,最前面必最前面必最前面必最前面必须须须须是是是是0 09 9字符或字符串字符或字符串字符或字符串字符或字符串ASCIIASCII字符字符字符字符ABCABC两端必两端必两端必两端必须须须须加加加加 或或或或”2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回7二符号定义伪指令二符号定义伪指令二符号定义伪指令二符号定义伪指令 用于给程序中多次出现的同一个常量或表达式赋一个符号名,也可以为其它符号用于给程序中多次出现的同一个常量或表达式赋一个符号名,也可以为其它符号用于给程序中多次出现的
19、同一个常量或表达式赋一个符号名,也可以为其它符号用于给程序中多次出现的同一个常量或表达式赋一个符号名,也可以为其它符号名取一个新名字,并赋给新的类型属性。名取一个新名字,并赋给新的类型属性。名取一个新名字,并赋给新的类型属性。名取一个新名字,并赋给新的类型属性。(1 1 1 1)EQUEQUEQUEQU伪指令伪指令伪指令伪指令例:例:例:例:FIRST EQU 1 FIRST EQU 1 FIRST EQU 1 FIRST EQU 1 ;定义常数;定义常数;定义常数;定义常数 SECOND EQU FIRST*3+8 SECOND EQU FIRST*3+8 SECOND EQU FIRST*
20、3+8 SECOND EQU FIRST*3+8 ;定义数值表达式;定义数值表达式;定义数值表达式;定义数值表达式 ADDR1 EQU DS:ADDR1 EQU DS:ADDR1 EQU DS:ADDR1 EQU DS:EBP+4EBP+4EBP+4EBP+4 ;定义地址表达式;定义地址表达式;定义地址表达式;定义地址表达式 DWORDS EQU THIS DWORD DWORDS EQU THIS DWORD DWORDS EQU THIS DWORD DWORDS EQU THIS DWORD ;定义下面的字节变量为双字类型;定义下面的字节变量为双字类型;定义下面的字节变量为双字类型;定义
21、下面的字节变量为双字类型 BYTES DB 10 DUP(0)BYTES DB 10 DUP(0)BYTES DB 10 DUP(0)BYTES DB 10 DUP(0)ADDR2 EQU WORD PTR BYTES ADDR2 EQU WORD PTR BYTES ADDR2 EQU WORD PTR BYTES ADDR2 EQU WORD PTR BYTES ;重新定义变量;重新定义变量;重新定义变量;重新定义变量BYTESBYTESBYTESBYTES的名字和属性的名字和属性的名字和属性的名字和属性 START:MOV EAXSTART:MOV EAXSTART:MOV EAXSTA
22、RT:MOV EAX,EBXEBXEBXEBX GOON EQU FAR PTR START GOON EQU FAR PTR START GOON EQU FAR PTR START GOON EQU FAR PTR START ;重新定义标号;重新定义标号;重新定义标号;重新定义标号STARTSTARTSTARTSTART的名字和属性的名字和属性的名字和属性的名字和属性 COUNT EQU ECX COUNT EQU ECX COUNT EQU ECX COUNT EQU ECX ;为;为;为;为ECXECXECXECX重新取名重新取名重新取名重新取名注意:注意:注意:注意:该等值语句只作
23、为符号定义用,不产生任何目标代码,也不占用存储单元,并该等值语句只作为符号定义用,不产生任何目标代码,也不占用存储单元,并该等值语句只作为符号定义用,不产生任何目标代码,也不占用存储单元,并该等值语句只作为符号定义用,不产生任何目标代码,也不占用存储单元,并且不能是程序中曾经定义过的符号名。且不能是程序中曾经定义过的符号名。且不能是程序中曾经定义过的符号名。且不能是程序中曾经定义过的符号名。2022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回8(2 2)“”伪指令伪指令“”伪操作命令与伪操作命令与伪操作命令与伪操作命令与EQUEQUEQUEQU具有相同的功
24、能,但它定义的具有相同的功能,但它定义的具有相同的功能,但它定义的具有相同的功能,但它定义的符号符号符号符号允许重新定义允许重新定义允许重新定义允许重新定义。例:例:例:例:PERSON=10 PERSON=10 PERSON=10 PERSON=10 ;定义;定义;定义;定义PERSONPERSONPERSONPERSON等于等于等于等于10101010 PERSON=PERSON+5 PERSON=PERSON+5 PERSON=PERSON+5 PERSON=PERSON+5 ;重新定义;重新定义;重新定义;重新定义PERSONPERSONPERSONPERSON等于等于等于等于1515
25、15152022/12/31汇汇编编语语言言程程序序设设计计及及上上机机指指导导第第5章章返回返回95.2.2 5.2.2 变量变量变量的值可以在程序运行过程中可随时修改,变量名是存放数据变量的值可以在程序运行过程中可随时修改,变量名是存放数据变量的值可以在程序运行过程中可随时修改,变量名是存放数据变量的值可以在程序运行过程中可随时修改,变量名是存放数据的存储单元符号地址,变量的值为对应存储单元的内容。的存储单元符号地址,变量的值为对应存储单元的内容。的存储单元符号地址,变量的值为对应存储单元的内容。的存储单元符号地址,变量的值为对应存储单元的内容。一变量的属性一变量的属性一变量的属性一变量的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 上机 指导 语法
限制150内