微机原理汇编语法.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 汇编 语法
- 资源描述:
-
微机原理与接口技术,第4章 汇编语言程序设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2,课程教学单元,第1章,微型计算机基础知识,第2章,80X86/Pentium微处理器内部结构,第3章 指令系统,第4章 汇编语言程序设计,第5章 8086/8088CPU的总线操作与时序,第6章 微型计算机系统结构,第7章 半导体存储器,第8章 输入输出接口技术,第9章 中断与DMA技术,第10章 定时与计数技术,第11章 并行接口与串行接口,第12章 人机交互接口,第13章 模拟量输入输出接口,汇编语言的优点,:,效率高,占的内存少,运行速度快。,汇编语言能最接近计算机机器语言,能将计算机的全部功能提供给用户使用。,汇编语言的适用领域,要求执行效率高,反应快的领域,如操作系统内核、工业控制、实时系统;,系统频繁使用的子程序或程序段;,与硬件密切相关软件开发,如设备驱动程序;,受内存容量限制的领域,如控制仪器、仪表。,为什么要用汇编语言编程?,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,MDATA,SEGMENT,SUM DB?,MDATA,ENDS,MCODE,SEGMENT,ASSUME CS:MCODE,DS:MDATA,MVAL EQU 3,MAIN,PROC FAR,GO,:PUSH DS,MOV AX,0,PUSH AX,MOV AX,MDATA,MOV DS,AX,MOV SUM,0,CYCLE:CMP SUM,100,JNA NDONE,MOV AL,SUM,OUT MVAL,AL,HLT,NDONE:IN AL,MVAL,ADD SUM,AL,JMP CYCLE,RET,MAIN,ENDP,MCODE,ENDS,END,GO,8086汇编语言程序格式举例1,1、,分段结构,组织内容,程序由若干段构成,以,END,为程序结束标志。,每段以,SEGMENT,开始,以,ENDS,结束。,段的数目根据需要而设置。,源程序的“,逻辑段,”,针对内存的“物理段”而分段组织管理指令、数据、堆栈,汇编后装入,相应物理段,。,4.1汇编语言的基本语法,一、汇编语言源程序格式,2、,语句构成,段落内容,每个段落由一行一行若干,语句,构成,三种汇编语言语句的格式,、指令性语句,:,8086/8088指令格式,经汇编产生对应的机器指令代码,在形成执行文件时执行。,结构:,标号:指令助记符 操作数;注释,。,、指示性语句,(,伪指令,语句),:,注释型非执行语句,给汇编程序提供一些控制信息,如定义数据、分配存储区、指示程序开始和结束等,没有对应的机器码。,结构:,名字 伪指令助记符 操作数;注释,说明:,名字可以是符号常量名、变量名、过程名、段名等,名字后无“:”。,伪指令命令助记符有40多个,按功能分八类。,操作数之间须用逗号分隔。,、宏指令语句*,:,编程者自定义的指令语句,代表一段通用程序。,3、,尾部取址,执行程序,源文件尾部必须指明程序运行时的入口地址。,常用,标号,表明,如示例程序中的,“END GO”其中的标号“,GO,”。,8086汇编语言程序举例2,Page.114.【例4-1】,4.1汇编语言的基本语法,一、汇编语言源程序格式,分段结构 语句组成 尾部取址,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,4.1汇编语言的基本语法,二,、汇编语言语句格式,名字 操作码 操作数;注释,Name Field:Operation Field Operand Field,Operand Field;Comment Field,注意,:,本书语句指:,指令性语句,和,伪指令语句,分为4部分:,名字段,、,操作码段,、,操作数段,、,注释段,中内容为可选项,操作码为必有部分。,4.1汇编语言的基本语法,二,、汇编语言语句格式,4.1汇编语言的基本语法,二,、汇编语言语句格式,名字 操作码 操作数;注释,Name Field:Operation Field Operand Field,Operand Field;Comment Field,1、指示性语句中为,名字,,表示用户对某语句定义的特定含义的字符,经过汇编后有三个属性:,段基址、偏移量和类型。,名字后无冒号,用空格与操作码分隔,。,2、指令性语句中为,标号,,表示语句的符号地址,便于转移、调用和查询。指示性语句中为,符号常量名、变量名、过程名、段名等名字。,标号后有冒号。,3、命名原则:,字母开头,由,字母、数字、特殊字符,构成,31,个.,不能,与寄存器、指令助记符、伪指令助记符,同名,。,任选项,多数,指令性语句前不需要标号,但多数伪指令性语句前有名字。,START:,MOV,AX,DATA;将DATA单元内容送AX,4.1汇编语言的基本语法,二,、汇编语言语句格式,4.1汇编语言的基本语法,二,、汇编语言语句格式,4.1汇编语言的基本语法,二,、汇编语言语句格式,名字 操作码 操作数;注释,Name Field:Operation Field Operand Field,Operand Field;Comment Field,由,指令助记符,或者,伪指令助记符,组成。,是语句中不可缺少的,核心,部分。,它指出语句要执行的各种操作。,START:,MOV,AX,DATA;将DATA单元内容送AX,4.1汇编语言的基本语法,二,、汇编语言语句格式,名字 操作码 操作数;注释,Name Field:Operation Field Operand Field,Operand Field;Comment Field,参与操作的,数值数据,或者,地址数据,可以是,常数,、,字符串,、,寄存器名,、,变量,、,表达式,、,存储器数,、,标号,等,汇编时产生相应的数值与地址,两个以上的操作数要用,“,”分隔,可选项,START:MOV,AX,,,DATA,;将DATA单元内容送AX,4.1汇编语言的基本语法,二,、汇编语言语句格式,名字 操作码 操作数;注释,Name Field:Operation Field Operand Field,Operand Field;Comment Field,说明指令在程序中的作用,增加程序可读性,用“,;”,与前一部分分隔开,可选项,START:MOV AX,DATA,;将DATA单元内容送AX,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,1、常量,(1)分类 (2)作用,2、变量,(1)属性 (2)作用,3、标号,(1)属性 (2)作用,4、表达式,(1)分类,(2)运算符号,(3)优先级,4.1汇编语言的基本语法,三,、汇编语言的操作数,4.1汇编语言的基本语法,三,、汇编语言的操作数,1、常数(量),汇编时已经有确定数值的量,(1)常量的分类:,数字常量:,以B、O、D、H结尾常量。,如:0A8C6H,字符常量:,加引号的字符或字符串。,如:A,BCDE,汇编时被翻译成对应的ASCII码41H和42H,43H,44H,45H;一个字符翻译为一个字节。,(2)常量的作用:,指令中的立即数,,MOV AL,0A9H,MOV BX,AB,地址中的偏移量disp,,MOV AL,DS:340H,MOV CX,32HSI,变量的初始值,,DB 12H,34H,DW 10H DUP(1234H),DD AB,4.1汇编语言的基本语法,三,、汇编语言的操作数,2、变量,存放内存中的一种数据,内容可修改。,(1)变量的三种属性:,段值(SEGMENT)变量所在段的段地址。,偏移量(OFFSET)变量单元地址与段起始地址之间的位移量。,类型(TYPE)有字节、字和双字三种。,(2)变量的作用:,存储单元的符号地址,可以被指令引用。,MOV AL,VAR1,CMP VAR1,BL,4.1汇编语言的基本语法,三,、汇编语言的操作数,3、标号,标志符号,(1)标号的三种属性:,段值在CS段寄存器中,偏移量概念与变量同,类型NEAR和FAR。默认类型为NEAR。,NEAR表示标号所在语句与转移指令或调用指令在,同一码段内,只需改变IP,。FAR,不在同一码段内,。,(2)标号的作用:,某条指令所存放单元的符号地址,可作为转移指令或CALL指令的转移地址。,SUB1:MOV AX,1234H,JMP SUB1,4.1汇编语言的基本语法,三,、汇编语言的操作数,4、表达式,常数标号变量与运算符组合的序列。,(1)表达式分类:,数字表达式:汇编时得到一个,数值,地址表达式:汇编时得到一个,地址,(2)运算符号:,算术运算符:,+*/MOD,逻辑运算符:,AND OR NOT XOR,关系运算符:,EQ NE LT GT LE GE,分析运算符:,SEG OFFSET TYPE SIZE LENGTH,合成运算符:,PTR THIS SHORT,4.1汇编语言的基本语法,三,、汇编语言的操作数,算术运算符:+、-、*、/MOD(除余),a:数值运算:,例:设,VAL=50,MOV AX,VAL/7;相当于MOV AX,7,MOV AX,VAL MOD 7;商7,余(AX)=1,MOV AX,VAL-30;相当于MOV AX,20,b:地址运算:,地址可以加或减,乘、除或余数无意义。,例:,LEA SI,SUM+3,;,表示变量SUM的数值作为地址,加上3得到的和,作为新存储器地址送入SI。,五 种 运 算 符 介 绍,MOV BX,0FFFFH,格式中的类型可以是:,NDONE:IN AL,MVAL,1汇编语言的基本语法 四、汇编语言的伪指令,1汇编语言的基本语法 四、汇编语言的伪指令,五 种 运 算 符 介 绍,四、汇编语言伪指令,NUM=NUM+10H;,段名常取与本段用途有关的名字,出现在SENMENT和ENDS处要一致。,MAIN ENDP,段的数目根据需要而设置。,将DATA单元内容送AX,二、I/O的DOS调用功能,1汇编语言的基本语法 二、汇编语言语句格式,MOV SUM,0,逻辑运算符:AND、OR、NOT和 XOR,只能用于数字表达式中。,例:,MOV BL,55H AND 0F0H;经汇编为MOV BL,50H,MOV BH,55H OR 0F0H;经汇编为MOV BH,0F5H,MOV CL,55H XOR 0F0H;经汇编为MOV CL,0A5H,MOV AL,NOT 0F0H;经汇编为MOV AL,0FH,这些逻辑运算符也是8086/8088的指令助记符,会不会造成混乱呢?,不会的。,运算符在汇编时进行运算,而,指令助记符在CPU执行指令时才进行计算,。,例:AND DX,MNU1 AND 11H,五 种 运 算 符 介 绍,关系运算符:EQ,(相等),NE,(不等),LT,(小于),GT,(大于),LE,(小于或等于),GE,(大于或等于),关系运算符的两个操作数必须都是数字或者是同一段内的两个存储器地址。关系为,真,结果为,0FFFFH,;关系为,假,结果为,0,。,例:,MOV BX,0FH EQ 1111B;MOV BX,0FFFFH,MOV AX OFH NE 1111B;MOV AX,0000H,五 种 运 算 符 介 绍,:分析运算符:,SEG,取存储单元的,段值,OFFSET,取,变量地址,偏移量,TYPE,取MEM操作数,类型,,,返回值,1 2 4 -1 -2,对应类型,BYTE WORD DWORD NEAR FAR,LENGTH,取变量的,个数,,若变量有DUP说明,则返回变量的个数;若无DUP说明,返回1,SIZE,取分配给变量的,字节总数(=LENGTH*TYPE),五 种 运 算 符 介 绍,五 种 运 算 符 介 绍,区别,:MOV SI,OFFSET STRI1,MOV SI,STRI1,LEA SI,STRI1,关系,:,若BUFFER存储区伪指令定义:,BUFFER DW 200 DUP(0),则:TYPE BUFFER 等于 2,LENGTH BUFFER 等于 200,SIZE BUFFER 等于 400,合成运算符:,a,:,PTR,用来指定存储单元类型或类型更改。,例1:MOV BX,BYTE PTR DI,例2,:STRI1 DW?;,定义为字类型,PA EQU BYTE PTR STRI1;,又改为字节类型,如果使用语句,:,MOV STRI1,AX,;,合法传送,MOV AL,STRI1,;,非法传送,只能用,:MOV AL,PA,或,MOV AL,BYTE PTR STRI1,五 种 运 算 符 介 绍,合成运算符:,b,:,THIS,用来指定存储单元类型,可以使标号、变量类型更加灵活。,例,:DATA-WORD EQU THIS WORD,DATA-BYTE DB 100 DUP(?),DATA-WORD,它们代表同一个有100字节的数据区,其段值、偏移量都相同,只是,DATA-WORD的,访问类型为WORD,,DATA-BYTE的,访问类型为BYTE。,c,:,SHORT,用来指定某标号类型为短标号,转移距离在(-128+127)。,五 种 运 算 符 介 绍,4、表达式 (3)运算符号优先级:,4.1汇编语言的基本语法,三,、汇编语言的操作数,LENGTH,SIZE,,段超越运算符,PTR,OFFSET,SEG,TYPE,THIS,+,-(一元运算),*,/,MOD,SHL,SHR,+,-(二元运算),EQ,NE,LT,LE,GT,GE,NOT,AND,OR,XOR,SHORT,高,低,4.1汇编语言的基本语法,三,、汇编语言的操作数,不同级按优先级计算;,同级从左到右计算;,()可以提升优先级。,例:设变量VAL1=100 VAL2=24 VAL3=5,则:,(,VAL1+3)(VAL2 MOD VAL3),=103 4=412,(VAL1 LT 100)AND 1)OR(VAL1 GE 100)AND 0),=(0 AND 1)OR(0FFFFH AND 0),=0000H,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,一、汇编语言源程序格式,二、汇编语言语句结构,三、汇编语言的操作数,四、汇编语言伪指令,一、设计步骤,二、I/O的DOS调用功能,三、顺序程序设计,四、分支程序设计,五、循环程序设计,六、子程序设计,(一)、符号定义伪指令:,EQU LABLE =,(二)、数据定义伪指令:,DB DW DD DQ DT DUP,(三)、段定义伪指令:,SEGMENT/ENDS ASSUME,(四)、过程定义伪指令:,PROC/ENDP,(五)、其它伪指令:,ORG END$,4.1汇编语言的基本语法,四,、汇编语言的伪指令,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(一)、符号定义伪指令:,作用,:,编制程序时,用容易理解记忆的,符号表示变量/表达式,,凡是用到变量/表达式的地方就用符号代替。若需要修改变量/者表达式的值,则在定义符号处修改。,符号包括,:,变量名,标号名,过程名,寄存器名,指令助记符,4.1汇编语言的基本语法,四,、汇编语言的伪指令,1、赋值伪指令:EQU,格式,符号 EQU 表达式,注解,EQU将表达式的值赋予符号,但不允许对同一符号多次重复定义。例:,N1,EQU,5*8+1;,COUNT,EQU,100;,M,EQU,MOV,ADR,EQU,ES:SI+7,L1,EQU,SUBSTART,WO,EQU,WORD PTR DA-BYTE,4.1汇编语言的基本语法,四,、汇编语言的伪指令,2、等号伪指令:=,格式,名字(符号)=表达式,注解,与EQU类似,将表达式值赋予名字(符号),但允许多次重复定义同一符号。例:,COUNT,=,5;,NUM,=,14H;定义NUM,NUM,=,NUM+10H;重新定义NUM,4.1汇编语言的基本语法,四,、汇编语言的伪指令,3、类型定义伪指令:LABEL,格式,变量或标号 LABEL 类型,注解,LABEL为当前存储单元,重新定义,一个指定类型的变量或者标号,并不为指定的变量或者标号分配存储单元。,例:,DA-BYTE LABEL BYTE,DA-WORD DW 20H DUP(0);,该语句定义了20H个字单元,它们的变量名为,DA-WORD,,如果需要对它们中的元素以,字节形式,访问,则用变量名,DA-BYTE,。两变量名有相同的段值和偏移量。,4.1汇编语言的基本语法,四,、汇编语言的伪指令,注解,从上例可以看出LABEL与THIS有类似的效果:,能给同一变量指明不同的访问类型,。,格式中的类型可以是:,(对变量),BYTE WORD DWORD,(对标号),NEAR FAR,如:,TOM LABEL FAR,TOM:MOV AL,30H,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(二)、数据定义伪指令:,作用,:把数据项或者表的数值存入存储器的连续单元中。,定义一个变量名,通过该变量名访问数据项。,格式,:,DB,DW,变量名,DD 操作数,DQ,DT,4.1汇编语言的基本语法,四,、汇编语言的伪指令,注解,变量名为可选项,DB,表示变量是,BYTE,,操作数是,1,个BYTE,DW,表示变量是,WORD,,操作数是,2,个BYTE,低字节在前,高字节在后。,DD,表示变量是,DWORD,,操作数是,4,个BYTE,低字在前,高字在后。,DQ,表示变量是,QWOED,,操作数是,8,个BYTE,低双字在前,高双字在后。,DT,表示变量是,TWORD,,操作数是,10,个BYTE,4.1汇编语言的基本语法,四,、汇编语言的伪指令,操作数可以是常数、表达式、字符串和“?”。例:,DA-BYTE DB -5H,DA-WORD DW 6*3,DA-DWORD DD 1234H,STRING1 DB AB,STRING2 DW AB,STRING3 DD AB,FBH,12H,00H,34H,12H,00H,00H,41H,42H,42H,41H,42H,41H,00H,00H,A,B,AB,四、汇编语言伪指令,五、循环程序设计,如:A,BCDE,PAGE(段基址从某个页边界开始),1汇编语言的基本语法 三、汇编语言的操作数,MOV BX,0FFFFH,三种汇编语言语句的格式,1汇编语言的基本语法 四、汇编语言的伪指令,DT,注意:本书语句指:指令性语句和伪指令语句,ORG END$,DW,RET,常用标号表明,如示例程序中的,START:MOV AX,DATA;,SIZE 取分配给变量的字节总数(=LENGTH*TYPE),MOV BH,55H OR 0F0H;,低字节在前,高字节在后。,MASTERLI DB HELLO,汇编后如右图:,注意区分下面指令的不同存放次序:,4.1汇编语言的基本语法,四,、汇编语言的伪指令,4.1汇编语言的基本语法,四,、汇编语言的伪指令,重复操作符DUP可以与数据定义指令配合使用,格式为:,n DUP(初值,初值),n为重复次数;,初值可以用?代替,形成预留单元;,DUP可以嵌套。,SUBB DW 1000 DUP(?),;,定义1000个未知内容的字。,SD DB 2 DUP(0,2DUP(1);,定义6个字节:011011,BUF DB 16 DUP(WELCOME);,定义16次欢迎,LING DB 4 DUP(0,1);,定义8个字节:0101010 1,例:,ABC DB 0,1,?,?,?,LPI DW?,54,?,汇编后如右图示:,例:,BUFFER DW 3,4,$+3,汇编后如左图示:,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(三)、段定义伪指令:,作用,:在源程序中定义逻辑段,语句有SEGMENT、ENDS、ASSUME等。,1、段定义伪指令 SEGMENT/ENDS,格式,:,段名 SEGMENT 定位类型 组合类型 类别,段名 ENDS,4.1汇编语言的基本语法,四,、汇编语言的伪指令,注解:,段名常取与本段用途有关的名字,出现在SENMENT和ENDS处要,一致,。,段参数表明本段与其它段之间的关系,各参数用,空格隔开,。,定位类型,表明该段进入内存时以何种边界开始,有四种(,缺省值为 PARA),:,BYTE,(段基址可以从任意地址开始),WORD,(段基址以一个字为边界),PARA,(段基址以一个小节边界开始),PAGE,(段基址从某个页边界开始,),组合类型,指明本段与其它段之间,连接和定位,的关系,在程序连接时起作用。有,6,种(缺省值为NONE):,NONE,(本段与其它段无逻辑关系,各段有单独的段基址。),PUBLIC,(表示把本段和,各个程序模块中,属于PUBLIC类型的,同名字、同类别的段相继顺序连接成一个逻辑段,,运算时装入,同一个物理段,,使用同一个段基址。连接次序与LINK时模块次序相同。各段连成一段后,总长不能超过64KB。),STACK,(与PUBLIC功能类似,,组合成一个堆栈段,。一个源程序中至少要一个段为STACK类型,否则需要用户程序自己初始化SS和SP值。当有多个STACK段时,初始化的SS指向第一个STACK段。),COMMON,(将各个程序模块中属于COMMON类型的段连接成一个逻辑段,使用同一个段基址,它们相互覆盖,故连接后的段长度常取连接前最长的COMMON段的长度。目的是使不同模块的变量或标号能使用同一个存储区域,便于,模块间数据的通讯,。),AT表达式,(表示连接程序把本段装载于AT表达式所指示的段地址上,disp=0。如:AT 0903H;本段边界从绝对地址0903H开始。该组合类型不对代码段使用。),MEMORY,(连接程序把本段定位在其它所有段之后,即放在高地址端。源程序中有多个MEMORY段时,第一个按MEMORY处理,然后将其余按照COMMON类型处理。),4.1汇编语言的基本语法,四,、汇编语言的伪指令,类别,是,用户规定,的任意字符,用,括起来。模块连接时将,相同类别的段放在连续的存储区内,,若没有同时定义为PUBLIC或COMMON,则仍然是不同的段。,),例:,STACK SEGMENT PARA STACK STACK,STACK ENDS,DATA SEGMENT PARA DATA,DATA ENDS,CODE SEGMENT PARA MEMEORY,CODE ENDS,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(三)、段定义伪指令:,2、段寄存器设定伪指令 ASSUME,格式,:,ASSUME 段寄存器名 段名,Sreg:段名,注解,:,指明汇编时,逻辑段,与,段寄存器,的,对应关系,段寄存器名Sreg有:CS DS ES SS,段名可以是:程序段定义过的段名;SEG+标号;SEG+变量;关键字NOTHING(NOTHING可以取消以前用ASSUME对段寄存器的设置。),4.1汇编语言的基本语法,四,、汇编语言的伪指令,ASSUME仅指明段寄存器与逻辑段的关系,并没有将段地址装入段寄存器,真正的装入还需要程序完成(,参见Page125 例4-9,)。,各个段寄存器值的装入方式略有不同:,CS和IP,:,初始化时,(CS)=0FFFFH(IP)=00000H;此时可以将程序开始的地址放在0FFFFH处供调用。,如:,ORG 0FFFFH,JMP FAR PTR START,程序运行中可以用CALL、JMP、INT n初始化CS。,4.1汇编语言的基本语法,四,、汇编语言的伪指令,SS和IP:,方式1:,若在程序堆栈段组合类型中,有STACK项,,并用ASSUME将,堆栈段指定给SS寄存器,,则运行程序时系统会,自动装入,SS和SP的汇编初值。,方式2,:,MOV AX,STACK,(堆栈段名),MOV SS,AX,MOV SP,OFFSET TOP,(堆栈区起始偏移地址),DS和DI,:用,MOV指令仿方式2,传送。,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(四)、过程定义伪指令:,作用,:在源程序中构建过程(子程序)段,语句有PROC、ENDP、CALL、RET 等。,格式,:,过程名 PROC NEAR/FAR,RET,过程名 ENDP,4.1汇编语言的基本语法,四,、汇编语言的伪指令,注解,:,类型有NEAR/FAR,调用过程用“,CALL 过程名,”,返回时必须用“,RET,”,见Page126,例4-10,过程定义可以嵌套见下例,例:,CODE-SEG SEGMENT,PROC-1 PROC NEAR,PROC-2 PROC NEAR,RET,PROC-2 ENDP,RET,PROC-1 ENDP,CODE-SEG ENDS,过程PROC-2,过程PROC-1,代码段,(五)、其它伪指令:,1、设置起始地址伪指令:ORG,格式,:,ORG 表达式,作用,:表达式的值即为段内的起始地址或偏移地址,从此地址起连续存放程序或数据。,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(五)、其它伪指令:,2、汇编结束伪指令:END,格式,:,END 表达式/标号,作用,:程序结束,停止汇编。,表达式/标号就是源程序第一条可执行语句的标号,提供了程序执行时最初的CS和IP值。,3、程序计数器:$,作用,:表示汇编时的当前地址指针的值。,例1:Page127,例4-11,例2:计算程序汇编时$的值。,DATA SEGMENT ;,$=0,DA1 DB 10H DUP(?);,$=10H,DA2 DB 12H,34H ;,$=12H,DA3 DB 56H,$+10H,78H,$+20H;,前$=14H,后$=16H,DATA ENDS ;,$=17H,4.1汇编语言的基本语法,四,、汇编语言的伪指令,(一)、符号定义伪指令:,EQU LABLE =,(二)、数据定义伪指令:,DB DW DD DQ DT DUP,(三)、段定义伪指令:,SEGMENT/ENDS ASSUME,(四)、过程定义伪指令:,PROC/ENDP,(五)、其它伪指令:,ORG END$,4.1汇编语言的基本语法,四,、汇编语言的伪指令,伪指令 总 结,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


微机原理汇编语法.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14513416.html