汇编语言基础4.ppt
《汇编语言基础4.ppt》由会员分享,可在线阅读,更多相关《汇编语言基础4.ppt(58页珍藏版)》请在冰豆网上搜索。
第四章第四章宏汇编语言宏汇编语言汇编语言程序上机过程汇编语言程序上机过程汇编程序基本语法汇编程序基本语法数据定义数据定义伪伪指令指令汇编语言程序基本语句汇编语言程序基本语句汇编程序功能汇编程序功能步骤:
步骤:
步骤:
步骤:
11、用、用、用、用编辑程序编辑程序编辑程序编辑程序建立以建立以建立以建立以ASMASM为后缀名的为后缀名的为后缀名的为后缀名的源文件源文件源文件源文件。
22、用、用、用、用汇编程序汇编程序汇编程序汇编程序(MASM.EXE)(MASM.EXE)把源文件转换成把源文件转换成把源文件转换成把源文件转换成OBJOBJ目标目标目标目标文件文件文件文件。
33、用、用、用、用连接程序连接程序连接程序连接程序(LINK.EXE)(LINK.EXE)把目标文件转换成把目标文件转换成把目标文件转换成把目标文件转换成EXEEXE执执执执行文件行文件行文件行文件。
44、用、用、用、用DOSDOS命令方式直接键入文件名,执行。
命令方式直接键入文件名,执行。
命令方式直接键入文件名,执行。
命令方式直接键入文件名,执行。
汇编程序功能汇编程序功能汇编程序的功能:
汇编程序的功能:
汇编程序的功能:
汇编程序的功能:
11、检查源程序。
、检查源程序。
、检查源程序。
、检查源程序。
22、测出源程序中的语法错误,并给出出错信息。
、测出源程序中的语法错误,并给出出错信息。
、测出源程序中的语法错误,并给出出错信息。
、测出源程序中的语法错误,并给出出错信息。
33、产生源程序的目标程序,并可给出列表文件、产生源程序的目标程序,并可给出列表文件、产生源程序的目标程序,并可给出列表文件、产生源程序的目标程序,并可给出列表文件(LST)(LST)。
44、展开宏指令。
、展开宏指令。
、展开宏指令。
、展开宏指令。
汇编过程图示汇编过程图示编辑程序编辑程序编辑程序编辑程序PROG.ASMPROG.ASM源文件源文件源文件源文件汇编程序汇编程序汇编程序汇编程序MASM.EXEMASM.EXEPROG.OBJPROG.OBJ目标文件目标文件目标文件目标文件连接程序连接程序连接程序连接程序LINK.EXELINK.EXEPROG.EXEPROG.EXE执行文件执行文件执行文件执行文件汇编语言特征汇编语言特征汇编语言是介于高级语言和机器语言间的编程语言。
汇编语言是介于高级语言和机器语言间的编程语言。
汇编语言是介于高级语言和机器语言间的编程语言。
汇编语言是介于高级语言和机器语言间的编程语言。
优点优点优点优点:
程序员可直接使用程序员可直接使用程序员可直接使用程序员可直接使用MemoryMemory、RegistersRegisters、I/OI/O端口、端口、端口、端口、中断系统、中断系统、中断系统、中断系统、DMADMA系统等来编写高质量的程序;系统等来编写高质量的程序;系统等来编写高质量的程序;系统等来编写高质量的程序;生成的目标程序比其它等效高级语言程序的要精简,生成的目标程序比其它等效高级语言程序的要精简,生成的目标程序比其它等效高级语言程序的要精简,生成的目标程序比其它等效高级语言程序的要精简,且占内存少,执行速度快。
且占内存少,执行速度快。
且占内存少,执行速度快。
且占内存少,执行速度快。
缺点缺点缺点缺点:
程序与要解决问题的数学模型间关系不直观程序与要解决问题的数学模型间关系不直观程序与要解决问题的数学模型间关系不直观程序与要解决问题的数学模型间关系不直观编程难度较大,易出错编程难度较大,易出错编程难度较大,易出错编程难度较大,易出错程序设计和调试时间较长程序设计和调试时间较长程序设计和调试时间较长程序设计和调试时间较长可移植性差可移植性差可移植性差可移植性差4.1汇编源程序的语句类型汇编源程序的语句类型汇编语言的语句(指令)汇编语言的语句(指令)汇编语言的语句(指令)汇编语言的语句(指令)1111、指令性语句、指令性语句、指令性语句、指令性语句/可执行语句可执行语句可执行语句可执行语句/符号指令符号指令符号指令符号指令通知通知通知通知CPUCPU进行某种操作的命令,与机器指令相对进行某种操作的命令,与机器指令相对进行某种操作的命令,与机器指令相对进行某种操作的命令,与机器指令相对应,相应功能由硬件完成;应,相应功能由硬件完成;应,相应功能由硬件完成;应,相应功能由硬件完成;2222、指示性指令、指示性指令、指示性指令、指示性指令/说明性语句说明性语句说明性语句说明性语句/伪指令伪指令伪指令伪指令为汇编程序提供编译信息为汇编程序提供编译信息为汇编程序提供编译信息为汇编程序提供编译信息,为链接程序提供链接信为链接程序提供链接信为链接程序提供链接信为链接程序提供链接信息息息息,由软件完成。
由软件完成。
由软件完成。
由软件完成。
4.1汇编源程序的语句类型汇编源程序的语句类型格式格式格式格式:
指令性语句指令性语句指令性语句指令性语句标号:
标号:
标号:
标号:
符号指令符号指令符号指令符号指令;注释注释注释注释指示性语句指示性语句指示性语句指示性语句变量名变量名变量名变量名伪指令伪指令伪指令伪指令;注释注释注释注释4.24.2宏汇编基本语法宏汇编基本语法4.2.14.2.14.2.14.2.1标号、变量和常量标号、变量和常量标号、变量和常量标号、变量和常量1111、标号和变量(符号地址)、标号和变量(符号地址)、标号和变量(符号地址)、标号和变量(符号地址)标号标号标号标号:
代表指令地址,定义在:
代表指令地址,定义在:
代表指令地址,定义在:
代表指令地址,定义在CSCSCSCS中,为转移指令提中,为转移指令提中,为转移指令提中,为转移指令提供目标。
供目标。
供目标。
供目标。
变量变量变量变量:
代表内存操作数的存储地址,或者说变量名:
代表内存操作数的存储地址,或者说变量名:
代表内存操作数的存储地址,或者说变量名:
代表内存操作数的存储地址,或者说变量名就代表某个单元,定义在就代表某个单元,定义在就代表某个单元,定义在就代表某个单元,定义在DSDSDSDS、ESESESES、SSSSSSSS中。
中。
中。
中。
命名规则:
不能用保留字、仅能使用给定集合的符号、命名规则:
不能用保留字、仅能使用给定集合的符号、命名规则:
不能用保留字、仅能使用给定集合的符号、命名规则:
不能用保留字、仅能使用给定集合的符号、不能用数字打头、最长不超过不能用数字打头、最长不超过不能用数字打头、最长不超过不能用数字打头、最长不超过31313131个字符。
个字符。
个字符。
个字符。
标号和变量的标号和变量的33个属性个属性段属性段属性段属性段属性:
其所在的段基址,用:
其所在的段基址,用:
其所在的段基址,用:
其所在的段基址,用SEGSEGSEGSEG运算符可算出。
运算符可算出。
运算符可算出。
运算符可算出。
例:
例:
例:
例:
MOVAXMOVAXMOVAXMOVAX,SEGBUFSEGBUFSEGBUFSEGBUF偏移属性偏移属性偏移属性偏移属性:
用:
用:
用:
用OFFSETOFFSETOFFSETOFFSET运算符可算出其有效地址。
运算符可算出其有效地址。
运算符可算出其有效地址。
运算符可算出其有效地址。
例:
例:
例:
例:
MOVBXMOVBXMOVBXMOVBX,OFFSETBUFOFFSETBUFOFFSETBUFOFFSETBUF类型属性类型属性类型属性类型属性:
变量的类型有:
变量的类型有:
变量的类型有:
变量的类型有:
字节型:
用字节型:
用字节型:
用字节型:
用DBDBDBDB伪指令定义伪指令定义伪指令定义伪指令定义字型:
用字型:
用字型:
用字型:
用DWDWDWDW伪指令定义伪指令定义伪指令定义伪指令定义双字型:
用双字型:
用双字型:
用双字型:
用DDDDDDDD伪指令定义伪指令定义伪指令定义伪指令定义四字型:
用四字型:
用四字型:
用四字型:
用DQDQDQDQ伪指令定义伪指令定义伪指令定义伪指令定义五字型:
用五字型:
用五字型:
用五字型:
用DTDTDTDT伪指令定义伪指令定义伪指令定义伪指令定义标号的类型标号的类型标号的类型标号的类型:
NEARNEARNEARNEAR(近):
该类型标号是(近):
该类型标号是(近):
该类型标号是(近):
该类型标号是段内段内段内段内转移指令的目标地址转移指令的目标地址转移指令的目标地址转移指令的目标地址FARFARFARFAR(远):
该类型标号是(远):
该类型标号是(远):
该类型标号是(远):
该类型标号是段间段间段间段间转移指令的目标地址转移指令的目标地址转移指令的目标地址转移指令的目标地址2.2.常量常量常量表示一个固定的数值,它有以下形式:
常量表示一个固定的数值,它有以下形式:
常量表示一个固定的数值,它有以下形式:
常量表示一个固定的数值,它有以下形式:
立即数立即数立即数立即数字符串字符串字符串字符串符号常量符号常量符号常量符号常量数值表达式数值表达式数值表达式数值表达式立即数立即数立即数立即数:
经汇编后转换成等值的:
经汇编后转换成等值的:
经汇编后转换成等值的:
经汇编后转换成等值的二进制补码二进制补码二进制补码二进制补码。
注意注意注意注意:
算术表达式可视为立即数算术表达式可视为立即数算术表达式可视为立即数算术表达式可视为立即数.如:
如:
如:
如:
12121212,0A8H0A8H0A8H0A8H,10100000B10100000B10100000B10100000B,34Q34Q34Q34Q,十进制十进制十进制十进制由由由由0909数字组成,以字母数字组成,以字母数字组成,以字母数字组成,以字母DD(dd)结尾(缺省情况可以省略)结尾(缺省情况可以省略)结尾(缺省情况可以省略)结尾(缺省情况可以省略)100100,255D255D十六进十六进十六进十六进制制制制由由由由0909、AFAF数字组成,以字数字组成,以字数字组成,以字数字组成,以字母母母母HH(hh)结尾,以字母开头的常)结尾,以字母开头的常)结尾,以字母开头的常)结尾,以字母开头的常数需要加一个前导数需要加一个前导数需要加一个前导数需要加一个前导0064H64H,0FFH0FFH0B800H0B800H二进制二进制二进制二进制由由由由00和和和和11两个数字组成,以字母两个数字组成,以字母两个数字组成,以字母两个数字组成,以字母BB(bb)结尾)结尾)结尾)结尾01100100B01100100B字字字字符符符符串串串串常常常常数数数数:
用用用用括括括括起起起起来来来来的的的的字字字字符符符符串串串串,经经经经汇汇汇汇编编编编后后后后转换成相应的转换成相应的转换成相应的转换成相应的ASCIIASCIIASCIIASCII码码码码。
如:
如:
如:
如:
P10P10P10P10,3333MOVDLMOVDLMOVDLMOVDL,1111;DL=31H;DL=31H;DL=31H;DL=31HMOVAL,MOVAL,MOVAL,MOVAL,AAAA;AL=41H;AL=41H;AL=41H;AL=41H符符符符号号号号常常常常数数数数:
符符符符号号号号常常常常量量量量使使使使用用用用标标标标识识识识符符符符表表表表达达达达一一一一个个个个数数数数值值值值,常常常常用伪指令用伪指令用伪指令用伪指令EQUEQUEQUEQU或或或或“=”定义。
定义。
定义。
定义。
例:
例:
例:
例:
COUNTCOUNTCOUNTCOUNTEQUEQUEQUEQU55555555POINTERPOINTERPOINTERPOINTER2F8H2F8H2F8H2F8HMOVCLMOVCLMOVCLMOVCL,COUNTCOUNTCOUNTCOUNT;CL=55CL=55CL=55CL=55MOVDXMOVDXMOVDXMOVDX,POINTERPOINTERPOINTERPOINTER;DX=2H8HDX=2H8HDX=2H8HDX=2H8H注意:
注意:
注意:
注意:
E