欢迎来到天天文库
浏览记录
ID:48869039
大小:537.50 KB
页数:95页
时间:2020-01-28
《微机原理 汇编语言的学习.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微型计算机原理及应用1第三章汇编语言程序设计2§3.1汇编语言基本元素3由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个部分组成,其格式是:[标识符]指令助记符[操作数][;注解]其中用方括号括起来的部分,可以有也可以没有。每部分之间用空格(至少一个)分开,一行最多可有132个字符。3.1.1汇编语言的语句格式4(1)标识符:给指令或某一存储单元地址所起的名字。标识符由下列字符组成:(以字母或圆点开头)字母:A~Z,a~z;数字:0~9;特殊字符:?.@_$数字不能作标识符的第一个字符,而.仅能作
2、标识符的第一个字符,标识符最长为31个字符。标识符后跟冒号时表示标号,代表该行指令的起始地址,标号可以被转移、调用指令直接引用。标识符后不带冒号时表示变量。伪指令前的标识符不加冒号。5(2)指令助记符表示不同操作的指令,可以是8086/8088的指令助记符,也可以是伪指令。(3)操作数是指令执行的对象。依指令的要求,可能有一个、两个、没有或者多个。例如:RET;无操作数COUNT:INCCX;一个操作数MOVCX,DI;两个操作数ADDAX,[BP十4];第二个操作数为表达式(4)注释该项可有可无,是为源程序所加的注解,用于提高
3、程序的可读性。6汇编语言运算符:是汇编程序在汇编时计算的,与运算指令不同,指令是在程序运行时计算的。1、算术运算符、逻辑运算符、关系运算符如:+、-、×、/、AND、OR、LT等MOVAX,[DI+BX]ADDAX,FIRST+1MOVAX,((choiceLT20)AND5)OR((choiceGE20)AND6)3.1.2汇编语言运算符7注意:算术运算符总可以用于数字操作,其结果也是数字的。当应用于存储器操作数时,只有+,-运算符有意义;逻辑运算符的操作数也必须是数字,存储器操作数不能进行逻辑运算;关系运算符连接的两个操作数
4、,必须都是数字的或是在同一段内的存储器地址。82、取值运算符1)$运算符$:当前地址偏移量的值BLOCKDB‘HELLO!’NUMEQU$-BLOCK‘H’‘E’‘L’‘L’‘O’‘!’BLOCK$;NUM为69SEG和OFFSETSEG:求标号或变量的段地址OFFSET:求标号或变量的偏移地址例如,定义:SLOTDW25则:MOVAX,SLOT;从SLOT地址中取一个字送入AXMOVAX,SEGSLOT;将SLOT的段地址送入AXMOVAX,OFFSETSLOT;将SLOT的段内偏移地址送AX103)TYPE返回标号或存储器操
5、作数的类型值对存储器操作数:表示占用的字节数对标号:表示过程或指令地址的调用类型表3-1存储器操作数的类型属性及返回值字节字双字NEARFAR124-1-2114)LENGTH和SIZE(对用DUP定义数据的情况下)LENGTH:返回一个与存储器操作数相联系的基本数据个数,SIZE:返回一个为存储器操作数分配的字节数关系:SIZE=LENGTH×TYPE例如:若MULT-WORDDW50DUP(0)则LENGTHMULT-WORD=50SIZEMULT-WORD=100TYPEMULT-WORD=2123、属性运算符用来给指令中
6、的操作数指定一个临时的属性,而暂时忽略操作数定义时的属性。1)PTR定义操作数为新的类型一般格式:类型PTR操作数功能:建立一个存储器操作数,它与其后的存储器操作数有相同的段地址和偏移地址,但有不同的类型。F2DW3456HMOVAL,BYTEPTRF2MOV[BX],3MOVBYTEPTR[BX],3;AL:56H;错,类型不明确;字节传输133.1.3表达式是由运算符和操作数组成的序列,在汇编时产生一个确定的值。这个值可以仅表示一个常量,也可以表示一个存储单元的偏移地址,相应的表达式称为常量表达式和地址表达式。141、常数二
7、进制(B),八进制(Q),十六进制(H),十进制(D)(默认),十进制浮点数,十六进制实数,字符和字符串10001100100B244Q64H‘BD’‘Thisisaclassroom.’152、常量操作数常量操作数是一个数值操作数,一般是常量或者是表示常量的标识符。如:COUNTEQU10NAME=‘J’可以为数字常量操作数或字符串常量操作数。前者可采用二进制、八进制、十进制或十六进制等进位计数形式;而后者所对应的常量值为相应字符的ASCII码。163、存储器操作数存储器操作数是一个地址操作数,代表一个存储单元的地址,通常以标
8、识符的形式出现。变量:代表的是某个数据在数据段、附加段或堆栈段中的地址。变量所对应的存储单元内容在程序的运行过程中是可以改变的。标号:代表的是某条指令代码在代码段中的地址。标号通常作为转移指令或调用指令的目标操作数,在程序运行过程中不能改变。17存储器操作数有三
此文档下载收益归作者所有