- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理;概述
汇编语言:汇编语言是一种面向计算机的符号语
言。用指令的助记符、符号地址、标
号、伪指令等书写程序的语言。
汇编语言源程序:用汇编语言书写的源程序。
汇编: 将汇编语言源程序翻译成机器语言程序
的过程。
汇编程序:完成汇编过程的系统程序。
ASM和MASM ;3.1 汇编语言的基本元素;3.1.1 汇编语言的指令语句格式
由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由1~4个部分组成。
其格式是:
[标号] 指令助记符 [操作数][;注释];1.标号 (标识符 Identifiers )
标识符是由程序员定义的具有特定意义的字符序列,是给指令或某一存储单元地址所起的名字。 标识符可由下列字符组成:
字母:A ~ z ;
数字:0 ~ 9 ;
特殊字符:?、· 、@、_、$ 。
标识符最多为31个字符。数字不能作标识符的第一个字符。当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址。当标识符后不带冒号时,表示变量。伪指令前的标识符不加冒号。
[标号] 指令助记符 [操作数][;注释];2.指令助记符 (保留字Reserved words)
是一类特殊的标识符,可以是8086/8088的指令助记符,也可以是伪指令。如果指令带有前缀(如LOCK、REP、REPE/REPZ、REPNE/REPNZ),则指令前缀和指令助记符要用空格分开。
[标号] 指令助记符 [操作数][;注释] ;3.操作数
指令执行的对象。例如:
RET ; 无操作数
INC CX ; 一个操作数
MOV CX,DI ;两个操作数
如果是伪指令,则可能有多个操作数,例如:
COST DB 3,4,5,6,7 ;5个操作数
当操作数超过1个时,操作数之间应用逗号分开。操作数可以是常数、寄存器名、标号、变量,也可以是表达式,例如:MOV AX,[BP + 4] ;
[标号] 指令助记符 [操作数][;注释];4.注释
该项是为源程序所加的注解,用于提高程序的可读性。在注释前面要加分号“ ;”,它位于操作数之后。汇编时,对注解不作处理,仅在列源程序清单时列出,供编程人员阅读。
例如:
IN AL,PORTB ;读B口到AL中
[标号] 指令助记符 [操作数][;注释]
;3.1.2 汇编语言的运算符
汇编语言运算符所指定的操作由汇编程序在汇编过程中完成,结果作为指令的目标代码被保存,与程序执行时CPU完成的可执行指令是两回事,故汇编语言运算符也称为伪操作符。
汇编语言的运算符有:
? 算术运算符: + 、 – 、×、/、MOD(取余数);
? 逻辑运算符:AND、OR、NOT 、XOR ;
? 关系运算符:EQ、NE、LT、GT、LE、GE;
? 取值运算符和属性运算符。;1.算术运算符和逻辑运算符 ;2.关系运算符 ;例如:
MOV BX,((PORT LT 5) AND 20) OR
((PORT GE 5) AND 30)
当PORT的值小于5时,上述指令汇编为:
MOV BX,20
否则为 MOV BX,30;3.取值运算符(分析运算符)
把存储器地址操作数分解成它的组成部分。
取值运算符有:SEG、OFFSET、TYPE、SIZE和
LENGTH
? SEG 给出一个变量或标号的段地址;
? OFFSET 给出一个变量或标号的16位偏移量;
? TYPE 返回表示存储器操作数内存变量和标
号类型的数值。; ? SIZE 取得并返回由DUP定义的内存变量的字节数。
? LENGTH 取得并返回由DUP定义的内存变量基本
单元的个数。
格式: SEG ﹤符号名﹥
OFFSET ﹤符号名﹥
TYPE ﹤符号名﹥
SI
文档评论(0)