汇编语言4(清华大学沈美明)_第1页
汇编语言4(清华大学沈美明)_第2页
汇编语言4(清华大学沈美明)_第3页
汇编语言4(清华大学沈美明)_第4页
汇编语言4(清华大学沈美明)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章汇编语言1第4章汇编语言程序格式第四章汇编语言24.1、汇编语言的功能汇编语言是面向机器结构的低级程序设计语言,是把机器语言符号化。用汇编语言编的程序称为汇编语言源程序,源程序必须经过“汇编”,生成目标代码,经过“连接”后生成执行文件,方可直接运行。汇编语言源程序结构:例1:用汇编语言编写:求解Y=2(A+B)-C的程序汇编语言源程序目标码程序可执行的目标码程序编辑程序汇编程序连接程序程序名.asm程序名.obj程序名.exe汇编语言的建立及汇编过程第四章汇编语言3DATASEGMENTA DB 25B DB 43C DB 76Y DB ?

DATAENDSSTACK1SEGMENTPARASTACK

DW20HDUP(0)STACK1ENDSCOSEGSEGMENTASSUMECS:COSEG,

DS:DATA,SS:STACK1START:MOVAX,DATA MOVDS,AXMOVAL,A ADDAL,B SALAL,1 SUBAL,C MOVY,AL MOVAH,4CH INT21HCOSEGENDSENDSTART192B4C00……B8XXXX8ED8……B44CCD21数据段堆栈段代码段第四章汇编语言44.2、伪操作汇编语言源程序由汇编语言语句组成:指令语句:也称可执行语句。每条语句都有对应的目标代码,代表计算机具有的一个基本能力。伪指令语句:用于指示汇编程序如何汇编源程序的语句。部分语句产生目标代码,部分语句不产生目标代码。宏指令语句:为提高编程效率而使用的扩展指令。指令语句与伪指令语句格式:

[标识符]操作符操作数[;注释]标识符:任选段。指令语句为标号,以:结束。字符个数为1~31个;第一个字符必须是字母、“?”、“@”、或“—”;不得使用系统保留字。第四章汇编语言5指令语句与伪指令语句格式:(续)

[名字]操作符操作数[;注释]操作符:即指令的助记符,指明语句的功能。操作数:指明指令的操作对象。注释:任选段。以“;”开始第四章汇编语言64.2.1、处理器选择伪操作功能:指示汇编程序选择哪一种指令系统主要有:

.8086选择8086指令系统

.286选择80286指令系统

.586选择Pentium指令系统

.586P选择保护方式下的Pentium指令系统第四章汇编语言74.2.2、段定义伪操作1、完整的段定义伪指令语句格式:段名 SEGMENT[定位类型][组合类型][‘类别名’]

本段语句序列(指令或数据)段名ENDS功能:在内存中设置一个逻辑段。定位类型:表示某段装入内存时,对段起始边界的要求。有四种选择:PAGE(页):段从一个“页”的边界开始,256个字节为一页,段起始地址低8位为0。PARA(节):隐含值。段从一个“节”的边界开始,16个字节为一节,段起始地址低4位为0。WORD(字):段从一个偶字节地址开始,段起始地址低1位为0。BYTE(字节):段可从任一个地址开始。第四章汇编语言8组合类型:说明多个程序块连接时,本模块与其它模块的同名段如何组合,有6种选择:None/PRIVATE:隐含值,表示本段与其他段无连接关系。PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的段连接在一起,共同占用连续的存储单元,形成一个新段,重新调整偏移量。COMMON:表示相同段名和组合类型也是COMMON的段是覆盖的,共享最大的段存储区。STACK:产生一个堆栈段,并把相同段名的段连接成一个连续段,系统自动设置SS为段的起始地址并初始化SP值。AT表达式:表示本段的起始单元可定位在表达式所示“节”的边界上。MEMORY:表示本段的存储地址在所有段的最高处。类别名:在链接处理时,LINK把类别相同的段存放在连续的存储区内。第四章汇编语言92、段寻址伪指令语句格式:

ASSUME段寄存器名:段名,段寄存器名:段名,…功能:指定当前段,及当前段的段寄存器名。取消ASSUME设置:ASSUME[段寄存器名]:NOTHING。例9:DS_DATASEGMENTVAR1DB12HDS_DATAENDSES_DATASEGMENTVAR2DB34HES_DATAENDSCODESEGMENTVAR3DB56HASSUMECS:CODE,DS:DS_DATA,ES:ES_DATASTART……INCVAR1INCVAR2INCVAR3CODEENDS ENDSTART

ASSUME伪指令没有对段寄存器赋值第四章汇编语言103、段寄存器的装入(1)DS、ES装入:通过程序装入:MOVAX,DATA_DSMOVDS,AX(2)SS装入(SS、SP同时装入):段定义伪指令组合类型用“STACK”时,系统自动装入。程序装入,同(1)。(3)CS装入:(CS、IP同时装入)系统用结束伪指令装入。格式:END起始地址通过分支指令修改时装入。如CALL、JMP等。立即数不能直接传给段寄存器第四章汇编语言114.2.3、程序的结束

使用END第四章汇编语言12汇编语言的数据种类:常量变量标号4.2.4、数据定义及存储器的分配伪指令第四章汇编语言13变量:实际为内存单元的数据,并为该存储单元取名字。其数据可以改变。变量的属性:

1、段属性:变量所在段址。

2、偏移地址属性:所在段的偏移地址。

3、类型属性:变量所占的字节数。第四章汇编语言14变量名DB/DW/DD表达式,表达式,…功能:为数据分配存储单元,并用变量名作为该存储器的名称。例:数值变量定义

DATA_BYTEDB10,4,10HDATA_WORDDW100,100H,-5DATA_DWDD3*20,0FFFDHT1DB‘HELLO’0100006410040ADATA_BYTEDATA_WORD01004F4C4C45高48第四章汇编语言15变量定义伪指令DB字符串的定义

例2、字符串变量定义:表达式由ASCII码字符组成,存储数据为ASCII代码。‘

STR1DB‘STR,‘G’‘T’‘S’‘I’‘R’‘G’00STR2‘S’‘T’‘R’‘G’STR1STR2DW‘ST’,‘RI’,‘G’STR3DD‘ST’,‘G’‘T’‘S’0000‘G’000000STR3单元分配原则:1、DB单个字符串最多255个字符,按顺序存放;2、DW单个字符串最多2个字符,按高地址存高字节代码存放;3、DD单个字符串最多2个字符,高2位为00,低2位同DW.第四章汇编语言16

变量定义伪指令DB?、DUP?表达式:只分配存储单元。带DUP表达式:重复分配存储单元。格式:表达式1DUP(表达式2)表达式1为重复次数,表达式2为重复数据内容。例3:DAB1DB8DUP(?)DAB2DW4DUP(‘ST’)DAB3DW4DUP(4)DAB4DB2DUP(4DUP(3),8)DAB5DW2DUP(4DUP(3),8)‘T’‘S’‘T’‘S’‘T’‘S’‘T’‘S’DAB20000000000000000DAB1400400400400DAB33333833338DAB430303030803030303080DAB5DABDB?,?DAWDW?DADDD?224第四章汇编语言17常量:表示一个固定的数值。分类:

1、常数:指由2、8、10、16进制表达的数值。默认进制的设置:RADIXn2、字符串:使用单引号或双引号括起来的单个或多个字符,其数值为其所对应的

ASCII码。例:’D’、‘ASDF’4.2.5、表达式赋值伪指令EQU第四章汇编语言18符号定义作用:用符号表示常数或表达式。等值语句语句格式:符号 EQU表达式功能:将EQU右边表达式的值赋给符号。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论