欢迎来到天天文库
浏览记录
ID:51499320
大小:649.00 KB
页数:76页
时间:2020-03-25
《微机原理及接口技术5.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、5.1汇编语言的概念5.2伪指令5.3汇编语言源程序的格式5.4常用系统功能调用5.5汇编语言程序设计第5章汇编语言程序设计5.1汇编语言的概念5.1.1汇编语言语句的格式汇编语言:是一种面向CPU指令系统的程序设计语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。[名字:]助记符[操作数][;注释]知识要点提醒:汇编语言中已定义的保留字、指令助记符、伪指令助记符、寄存器名等,不能作为名字使用。5.1.2常数常数:也称常量,就是指令中出现的那些固定值,在程序运行期间不发生变化。1.二进制数:后跟字母B,如01110001B。2.八进制数:后跟字母O或Q,如123Q或
2、123O。3.十进制数:后跟字母D或不跟字母,如56D或56。4.十六进制数:后跟字母H,如78H,0FFH。5.字符和字符串:是由单引号括起来的一串字符,例如‘ABCDEF’,‘1223’。字符串最长可以有255个字符。知识要点提醒:汇编语言源程序中的数值常量的第一位必须是0~9数字,否则,汇编时将把它看成是标识符。例如常数B7H,在汇编语言源程序中应写成0B7H,FFH应写成0FFH。5.1.3标号与变量知识要点提醒:对于变量的类型值:DB为1,DW为2,DD为4,DQ为8,DT为10。对于标号的类型值:NEAR为-1,FAR为-2。2.变量变量是指存储在存储单元中的操作数,它们的值在程
3、序运行过程中是可变的。变量的属性:段、偏移量和类型。1.标号标号:标识符后跟冒号,它代表该行指令的起始地址,其它指令可以引用该标号,作为转移的符号地址。标号的属性:段、偏移量、类型。5.1.4运算符1.算术运算符:+、-、×、/、MOD。2.逻辑运算符:AND、OR、XOR、NOT。3.关系运算符:EQ、NE、LT、GT、LE、GE。8086宏汇编有算术运算符、逻辑运算符、关系运算符、分析运算符和综合运算符共5种。MOVAX,5EQ2;关系不成立,故(AX)←0MOVAX,7NE5;关系成立,故(AX)←0FFFFH例题:4.分析运算符:SEG、OFFSET、TYPE、SIZE、LENGTH
4、。(1)SEG:求标号或变量的段地址。格式:SEG变量或标号名例题:已知数据段从存储器的23000H地址开始,DBUF是该段中的一个变量名。MOVBX,SEGDBUF;汇编为:MOVBX,2300H(2)OFFSET:求标号或变量的偏移量。格式:OFFSET变量或标号名例题:已知标号START的段地址为2100H,物理地址为21200H。MOVDX,OFFSETSTART汇编为:MOVDX,0200H;与指令LEADX,START功能相同。(3)TYPE:求变量或标号的类型,其运算结果是个数值。格式:TYPE变量或标号例题:VARDW?;变量VAR的类型为字ARRAYDD10DUP(?);变
5、量ARRAY的类型为双字STRDB‘THISISTEST’;变量STR的类型为字节……MOVAX,TYPEVAR;(AX)←2MOVBX,TYPEARRAY;(BX)←4MOVCX,TYPESTR;(CX)←1(4)LENGTH:此运算符只适用于DUP定义变量的情况,LENGTH求出分配给该变量的数据个数,否则结果为1。格式:LENGTH变量例题:已定义:DA50DW50DUP(1)ADRDBl0,2AH则指令:MOVCX,LENGTHDA50;汇编为:MOVCX,50MOVBX,LENGTHADR;汇编为:MOVBX,1(5)SIZE:此运算符只适用于DUP定义变量的情况,SIZE求出分配
6、给该变量的字节数,否则结果为1。格式:SIZE变量例题:已定义DA50DW50DUP(1)DA2DBl0,2AH,5则指令:MOVCX,SIZEDA50;汇编为:MOVCX,100MOVBX,SIZEDA2;汇编为:MOVBX,15.综合运算符:PTR、THIS、SHORT等。用来临时改变变量或标号的类型或存储器操作数的存储单元类型,其中THIS、SHORT运算符不常用。PTR:用于在本语句取代一个已经定义过的存储器操作数的类型,但不改变该操作数的类型。格式:类型PTR地址表达式说明:类型可以是BYTE、WORD、DWORD、NEAR、FAR等;地址表达式可以是标号、作为地址指针的寄存器、变
7、量和数值的组合。例题:SDD?;定义STUFF为双字类型变量MOVBX,WORDPTRS;从S中取一个字到BX知识要点提醒:PTR只是用来建立一个符号地址,它本身并不分配存储单元。PTR运算符可以用来确定指令操作数的类型是字节型还是字型,以保证指令的正确使用。例题:已知寄存器BX的内容是0120H,指令为MOV[BX],34H执行指令时,汇编程序不能分清是把立即数34H存入偏移地址为0120H的单元,还是把立
此文档下载收益归作者所有