欢迎来到天天文库
浏览记录
ID:40343748
大小:525.00 KB
页数:29页
时间:2019-07-31
《计算机硬件技术基础(第三版) 艾德才 第5章 汇编语言与程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章汇编语言与程序设计5.1汇编语言基础计算机语言包括:面向机器的语言机器语言汇编语言高级语言汇编语言:用助记符表示指令汇编语言源程序:用汇编语言编写的程序汇编程序:编译汇编语言源程序的程序程序设计与执行过程建立源程序(文件名.ASM)编译成目标文件(文件名.OBJ)生成可执行文件(文件名.EXE)调试和运行程序用编辑软件(如EDIT.EXE)用汇编程序(如TASM.EXE)用链接程序(如TLINK.EXE)用调试程序(如TD.EXE)也可直接运行可执行文件汇编语言包括的语句指令性语句:CPU执行的指令,编译后生成目标代码,要求的操作在
2、执行程序时完成。指示性语句:CPU不执行的指令,编译后生不生成目标代码,要求的操作由汇编程序完成。下面分别介绍指令性语句由CPU执行的指令,编译后生成目标代码语句格式:[标号:][前缀]助记符[操作数],[操作数][;注释]例MIUS:ADDAX,BX;加法指令INCBX;BX加1指令的符号地址操作码注释前加分号指示性语句CPU不执行的指令;由汇编程序执行,编译后不生成目标代码;用于分配内存空间、定义变量、指示程序开始和结束等。指令格式:[名字]伪指令助记符操作数[,操作数,…][;注释]例YEQU100;用符号(变量)Y代替数据100指
3、示性语句中的操作数可以是:寄存器存储器单元常量:数值或字符、字符串变量:代表内存的数据区,程序视为存储器操作数表达式:可包括各种运算符5.2常用伪指令段定义伪指令指定段寄存器伪指令过程定义伪指令变量定义伪指令符号定义伪指令下面分别介绍段定义伪指令说明逻辑段的起始和结束说明不同程序模块中同类逻辑段之间的联系形态段名SEGMENT[定位类型][组合类型][’类别’]┇段名ENDS例定义数据段DATASEGMENTMEM1DB11H,22HMEM2DW1234HDATAENDS说明逻辑段的起点段的类别与其他段的关系指定段寄存器伪指令功能:用于说
4、明指向逻辑段的寄存器格式:ASSUME段寄存器名:段名[,段寄存器名:段名,…]例DATASEGMENT;定义数据段┇DATAENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATA;指定段寄存器┇CODEENDS过程定义伪指令和返回指令过程定义伪指令用于定义过程体格式:过程名PROC[NEAR/FAR]┇RET过程名ENDP过程的返回指令:RET该指令一般位于子程序的最后用于从堆栈中弹出断点地址,返回原程序。变量定义伪指令DB/DW/DD变量定义伪指令用于在数据段中定义变量,并按照变量类型分配存储单元和赋初值
5、。格式1:[变量名]{DB/DW/DD}表达式格式2:[变量名][重复次数]{DB/DW/DD}DUP表达式例如:ONEDB25H;定义1个字节变量ONE,存入初值25HTWODB5,7;定义2个连续的字节单元,分别存入初值5和7THREEDB?;定义1个字节,数据任意DATA1DW1234H;定义1个字(2个字节),存入数据1234H符号定义伪指令(EQU/=)符号定义伪指令用于为常量、变量、表达式或其他符号定义一个名字,但不分配内存单元。格式1:符号名EQU数值表达式格式2:符号名=数值表达式例如:CONSTANTEQU10;用符号C
6、ONSTANT表示常数10VAREQU30H+99H;用符号VAR表示表达式30H+99HPURGECONSTANT;解除符号CONSTANT,以便重新定义CONSTANTEQU20;用符号CONSTANT表示常数20DATA=3;用符号DATA表示3DATA=4;把符号DATA改为表示4汇编语言程序设计简单程序设计入门汇编语言程序在一些对内存储器容量和存取速度要求比较高的情况下,如I/O接口驱动程序、实时控制程序、系统软件等设计中常被使用,而且比用高级语言仿佛还要便当些。其实,用汇编语言编写程序,首先确定算法,然后紧紧抓住每条指令的格式
7、、功能以及数据的寻址方式,用户也可以编写出高质量的汇编语言程序。1.寄存器的加法下面给出了一个简单的汇编语言程序段,是用寄存器EAX、EBX、ECX和EDX实现加法运算,依此来说明寄存器加法是如何用汇编语言实现的。形成的32位的累加和被存放在EAX寄存器。;4个32位寄存器EAX,EBX,ECX与EDX内容相加,累加和存放在EAX内┋ADDEAX,EBX;EBX寄存器内容与EAX寄存器内容相加,结果存放在EAX上ADDEAX,ECX;ECX寄存器内容与EAX寄存器内容相加,结果存放在EAX上ADDEAX,EDX;EDX寄存器内容与EAX寄
8、存器内容相加,结果存放在EAX上┋2.存储器与寄存器加法用存储器中的数据与寄存器中的内容进行操作运算,是用存放在存储器的数据段内,其偏移地址为NUMB和NUMB+1的两个连续单元的字节数据,与
此文档下载收益归作者所有