资源描述:
《计算机原理与汇编汇编语言基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言概述一、概述1.高级语言与汇编语言比较高级语言:语句变量说明/定义inty,a=25,b=3,c=76;给变量赋值y=2(a+b)-c汇编语言:指令分配寄存器分配存储单元数据传递2.汇编程序结构数据段堆栈段代码段;设置数据段DATASEGMENTADB25;数据ABDB3;数据BCDB76;数据CYDB?;存放结果DATAENDS;设置堆栈段STACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDS示例:y=2(a+b)-c;设置代码段COSEGSEGMENTASSUMECS:COSEG,DS:DATA,SS:STACK1START:MOVAX,DA
2、TA;装填段寄存器DSMOVDS,AXMOVAL,A;取数据AADDAL,B;计算(A+B)SALAL,1;计算2(A+B)SUBAL,C;计算2(A+B)-CMOVY,AL;存结果MOVAH,4CH;结束用户程序,返回操作系统INT21HCOSEGENDSENDSTART示例:汇编语言:是汇编格式指令,伪指令的集合及其表示,使用这些指令的一组规则。机器语言:用二进制编码的机器指令的集合及一组使用规则,它是CPU能直接识别的唯一语言。MOVDS,AX——汇编语言8ED8——机器语言(目标代码)汇编语言与机器语言汇编语言与目标代码的对应00192B4CB8XXXX8ED8A0000002
3、060100D0E024060200A20300B44CCDMOVAX,DATAMOVDS,DXMOVAL,AADDAL,B21数据A数据B数据C数据D地址增大方向SALAL,1SUBAL,CMOVY,ALINT21HMOVAH,4CH与机器语言相关效率高编写源程序繁琐调试困难汇编语言特点(1)程序执行占用较短的时间,或者占用较小存储容量的场合。(2)程序与计算机硬件密切相关,程序直接控制硬件的场合。(3)需提高大型软件性能的场合。(4)没有合适的高级语言的场合。汇编语言的主要应用场合:二、汇编语言语句种类语句种类指令语句:又叫可执行语句,在汇编时产生一个目标代码,对应机器的一种操作。
4、伪指令语句:又叫命令语句。用于指示汇编程序如何汇编源程序,没有目标代码与之对应。宏指令语句:由用户自定义的指令。(指令的扩展)格式:名字操作符操作数;注释指令语句:[标号:]助记符[操作数[,操作数]][;注释]伪指令语句:[名字]定义符[参数,...,参数][;注释]命名规则:可以用?,@,_,数字和英文字符。名字的第一个字符不能是数字。名字的长度不受限制,但只有前31个字符有效。不允许用保留字作名字(指令,伪指令,寄存器名等)。二、汇编语言语句格式指令语句:[标号:]助记符[操作数[,操作数]][;注释]1.标号:标号是机器指令语句存放地址的符号表示,代表该指令目标代码的第一个字节
5、地址,后面必须紧跟冒号“:”。2.指令助记符:指令助记符为语句的核心成分,表示了该语句的操作类型。“MOV”3.操作数:操作数表示指令助记符的操作对象。4.注释:注释均以分号开始,它可占一行或多行,一般放在一条语句的后面。伪指令语句:[名字]定义符[参数,...,参数][;注释]1.名字(符号名):伪指令语句的一个可选项,空格表示结束,不得使用冒号。2.定义符(伪指令符):指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,假定伪指令ASSUME等。3.参数(操作数):伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定
6、,各个操作数之间必须以“逗号”分隔。4.注释:伪指令的注释必须以“;”开始,其作用同指令语句中的注释部分。三、符号定义语句1.等值语句格式:符号EQU表达式表达式:常数或数值表达式地址表达式变量或标号CONSTEQU10ADR1EQUDS:[BP+14H]ADR2EQUCONST+10COUNEQUVAR同一符号不能用EQU重新定义。汇编时,作为替代符号用,不产生目标代码,不占用存储单元。2.等号语句格式:符号=表达式CONT=5NUM=10HNUM=NUM+20H表达式形式同上,但可多次重新定义同一符号。三、符号定义语句例:DATASEGMENTDA1DB9AHDA2DW5678HD
7、A3DD12345678HDATAENDS变量的属性:段属性SEG偏移属性OFFSET类型属性TYPE四、数据定义语句格式:变量名DB/DW/DD表达式1,表达式2,...保留存储空间,并可以完成数据的初始化。格式:变量名DB/DW/DD表达式1,表达式2,...表达式:(1)数值(2)字符/字符串(3)?表达式:分配相应数量的存储单元,但不初始化。(4)带DUP的表达式:使用重复数据操作符DUP,能方便地定义连续的存储单元。格式:变量名DB/