汇编程序常用伪指令简介.pptx
《汇编程序常用伪指令简介.pptx》由会员分享,可在线阅读,更多相关《汇编程序常用伪指令简介.pptx(56页珍藏版)》请在咨信网上搜索。
1、第3章第3章3.10.1汇编语言的格式例例 3.10.1:用重复加法的方法实现乘法运算的子程序用重复加法的方法实现乘法运算的子程序STACK SEGMENT PARA STACK ;堆栈段开始堆栈段开始 DB 64 DUP(?);堆栈段空间为;堆栈段空间为100个字节个字节STACK ENDS ;堆栈段结束;堆栈段结束MYDATA SEGMENT PARA STACK ;数据段开始;数据段开始NUM1 DB 2AH ;数据段放的数据;数据段放的数据NUM2 DB 78HPRODUPCT DW?;数据缓冲区;数据缓冲区MYDATA ENDS ;数据段结束;数据段结束MYCODE SEGMENT
2、;代码段开始;代码段开始 ASSUME CS:MYCODE DS:MYDATA;指明代码段、数据段、;指明代码段、数据段、SS:STACK ;堆栈段段名;堆栈段段名MYPROC PROC FAR ;定义过程;定义过程 PUSH DS ;DS进栈进栈 SUB AX,AX ;AX清零清零 PUSH AX ;AX进栈进栈 MOV AX,SEG MYDATA ;段地址送;段地址送AX MOV DS,AX ;AX送送DS第3章第3章 SUB AX,AX ;AX清零清零 MOV CX,AX ;CX清零清零 MOV CL,NUM2 ;数据送数据送CL DEC CL ;CL1 MOV AL,NUM1 ;数据送
3、;数据送ALK:ADD AL,NUM1 ;AL+NUM1送送AL ADC AH,00H ;进位送;进位送AH LOOP K ;K循环,次数由循环,次数由CX决定决定 MOV PRODUCT,AX;结果送;结果送AX RET ;调用返回调用返回MYPROC ENDP ;过程结束;过程结束MYCODE ENDS ;代码段结束;代码段结束 END MYPROC ;程序结束;程序结束第3章第3章例4.2假设LISTA与LISTB为两个字类型数组,将他们各对应相加,其和放在LISTB数组中,程序设计如下:STACK SEGMENT ;堆栈段开始堆栈段开始 DW 32H DUP(?);堆栈段空间为;堆栈段
4、空间为40个字个字STACK ENDS ;堆栈段结束;堆栈段结束DSEG SEGMENT ;数据段开始;数据段开始 LISTA DW 64H DUP(1234H);100字的源缓冲区字的源缓冲区DSEG ENDS ;数据段结束数据段结束ESEG SEGMENT ;附加段开始;附加段开始 LISTB DW 100 DUP(432H1);100字的目的缓冲区字的目的缓冲区ESEG ENDS ;附加段结束;附加段结束CSEG SEGMENT ;代码段开始;代码段开始 ASSUME CS:CSEG DS:DSEG;指明代码段、数据段段名;指明代码段、数据段段名 ASSUME SS:STACK ES:E
5、SEG;堆栈段、附加段段名;堆栈段、附加段段名 MAIN PROC ;定义过程;定义过程 0000H B8 9014 MOV AX,DSEG ;数据段段地址送;数据段段地址送AX 0003H 8ED8 MOV DS,AX ;数据段段地址装入数据段段地址装入DS 0005H B8 9D14 MOV AX,ESEG ;附加段段地址送附加段段地址送AX 0008H 8EC0 MOV ES,AX ;附加段段地址装入;附加段段地址装入ES 000AH FC CLD ;选择地址增方向选择地址增方向第3章第3章第3章000BH BE 0000 MOV SI,OFFSET LISTA ;指向源块的首地址指向源
6、块的首地址000EH BF 0000 MOV DI,OFFSET LISTB ;指向目的块的首地址指向目的块的首地址0011H B9 6400 MOV CX,100 ;循环次数循环次数0014H AD LOP1:LODSW ;LISTA元素送元素送AX0015H 260305 ADD AX,ES:DI ;将将LISTB元素加到元素加到AX0018H AB STOSW ;两数之和存入;两数之和存入LISTB0019H E2F9 LOOP LOP1 ;循环至循环至CX=0001BH B4 4C MOV AH,4CH ;功能调用号功能调用号4CH送入送入AH001DH CD 21 INT 21H ;
7、程序结束后返回程序结束后返回DOS MAIN ENDP ;过程结束;过程结束 CSEG ENDS ;代码段结束;代码段结束 END MAIN ;程序结束;程序结束第3章第3章第3章举例程序得出结论 (1)源源程程序序一一般般由由n个个段段构构成成,理理论论上上讲讲可可以以有有很很多多,但但实实际际上上8086/8088规规定定不不超超出出16段段。每每个个段段都都以以 SEGMEN语语句句开开始始,以以ENDS语语句句结结束束。程程序序中中第第一一段段称称为为STACK(堆堆栈栈段段),它它用用来来在在存存储储器器的的某某个个地地方方建建立立一一个个栈栈区区;第第二二段段称称为为DATA(数数
8、据据段段),它它在在存存储储器器中中放放了了被被乘乘数数,乘乘数数的的数数据据,第第三三段段称称为为CODE(代代码码段段),其其中中包包括括了了许许多多以以符符号号表表示示的的指指令令用用于实现乘法运算。程序中出现了于实现乘法运算。程序中出现了SEGMEN、ASSUME伪指令。伪指令。(2)ASSUME语语句句可可使使汇汇编编程程序序知知道道CS、DS、SS、ES指指向向那那个个段段地地址址,它它在在汇汇编编时时起起作作用用,在在运运行行时时CPU不不知知道道除除CS外外的其他段地址,所以必须在程序中用指令进行赋值。的其他段地址,所以必须在程序中用指令进行赋值。(3)所所有有过过程程(用用R
9、ROC语语句句定定义义)必必须须用用过过程程结结束束语语句句(ENDP)结结束束。整整个个源源程程序序也也必必须须用用结结束束语语句句(END)来来结结束。束。汇汇编编程程序序有有三三种种基基本本语语句句构构成成:(硬硬)指指令令语语句句,(说说明明)伪指令语句,(说明)宏指令语句。伪指令语句,(说明)宏指令语句。(4)程程序序开开始始必必须须申申明明(装装入入)各各段段寄寄存存器器的的值值,即即各各段段地地址址的的值值第3章第3章第3章一:(硬)指令语句和伪指令语句硬硬指指令令使使CPU产产生生动动作作、并并在在程程序序执执行行时时才才处处理理的的语语句句,就就是是前前面面第第3章章学学习习
10、的处理器指令,汇编时会生成目标代码的处理器指令,汇编时会生成目标代码伪伪指指令令(Directive)不不产产生生CPU动动作作、在在程程序序执执行行前前由由汇汇编编程程序序处处理理的的说说明明性语句,例如,数据说明、变量定义等等性语句,例如,数据说明、变量定义等等伪伪指指令令与与具具体体的的处处理理器器类类型型无无关关,但但与与汇汇编编程程序序的的版版本本有有关关,即即;伪伪指指令令语语句句只只为为汇汇编编程程序序提提供供汇汇编编时时所所需需的的信信息息,而而本本身身不会生成目标代码不会生成目标代码第3章 执行性语句执行性语句由硬指令构成的语句,它通常对应由硬指令构成的语句,它通常对应一条机
11、器指令,出现在程序的代码段中:一条机器指令,出现在程序的代码段中:标号标号:硬指令助记符硬指令助记符 目的操作数目的操作数,源操作数;注释源操作数;注释 前面章节已讲过前面章节已讲过 说明性语句说明性语句由伪指令构成的语句,它通由伪指令构成的语句,它通常指示汇编程序如何汇编源程序:常指示汇编程序如何汇编源程序:名字名字 伪指令助记符伪指令助记符 参数参数,参数参数,;注释;注释第3章MOV CX,0MOV CX,0;传送指令,具有传送指令,具有2 2个操作数个操作数DELAY:DELAY:NOPNOP;空操作指令,没有操作数,带有标号空操作指令,没有操作数,带有标号LOOP DELAYLOOP
12、 DELAY;循环指令,标号循环指令,标号DELAYDELAY说明转移位置说明转移位置BUFFERBUFFER DB 1,2,3,4,5,6,7 DB 1,2,3,4,5,6,7;数据定义伪指令,数据定义伪指令,在主存中在主存中开开辟辟7 7个个连连续续的的字字节节单单元元,初初值值依依次次为为1 17 7,BUFFERBUFFER表表示示首首地地址址,即即段段地地址址和和偏偏移移地地址址,具具有有赋赋过过初初值值的的变变量量的的意意义,由汇编程序自动给出。义,由汇编程序自动给出。汇编语言语句实例汇编语言语句实例标号、名字与标识符标标号号是是反反映映硬硬指指令令位位置置(逻逻辑辑地地址址)的的
13、标标识识符符,后跟一个冒号后跟一个冒号“:”分隔分隔名名字字是是反反映映伪伪指指令令位位置置(逻逻辑辑地地址址)和和属属性性的的标标识识符符,后后跟跟空空格格或或制制表表符符分分隔隔,没没有有冒冒号号“:”标标识识符符(Identifier)一一般般最最多多由由31个个字字母母、数数字字及及规规定定的的特特殊殊符符号号(如如 _、$、?、)组组成成,不不能能以以数数字字开开头头。默默认认情情况况下下,汇汇编编程程序不区别标识符中的字母大小写序不区别标识符中的字母大小写一一个个程程序序中中,每每个个标标识识符符的的定定义义是是唯唯一一的的,还还不能书写成汇编语言采用的保留字不能书写成汇编语言采用
14、的保留字第4章保留字保保留留字字(Reserved Word)是是汇汇编编程程序序已已经利用的标识符,主要有:经利用的标识符,主要有:o硬指令助记符类硬指令助记符类例如:例如:MOV、ADDo伪指令助记符类伪指令助记符类例如:例如:DB、EQUo操作符操作符例如:例如:OFFSET、PTRo寄存器名寄存器名例如:例如:AX、CSo预定义符号预定义符号例如:例如:data第4章 汇编语言大小写不敏感第3章第3章3.10.2 伪 指 令 中 参 数、变 量 和 标 号1.汇编伪指令的标号;汇编伪指令的标号;不能以数字不能以数字09开头开头不能以保留字开头不能以保留字开头字母不区分大小写字母不区分大
15、小写标号和语句之间不能有标号和语句之间不能有:第3章第3章2.符号定义语句(1)用用符符号号来来表表示示一一个个指指定定的的常常数数或或数数值值表表达达式式即即为为常常量量标标号号,这这种种伪伪指指令令的的格格式式是是在在符符号号与与常常数数之之间间用用“=”或者或者“EQU”连接(等值语句)如:连接(等值语句)如:NUM1 EQU 78H;将将78H赋值给赋值给NUM1CONT1 =96 ;将;将60H赋值给赋值给CONT1CONT2 =28H+NUM1;将将A0H赋值给赋值给CONT2CONT3 EQU 2*CONT1;将将C0H赋值给赋值给CONT3常常量量标标号号是是给给某某个个数数据
16、据取取的的名名字字,一一经经定定义义,汇汇编编指指令令中就可以使用这个名字,无需使用具体的数字中就可以使用这个名字,无需使用具体的数字(2)解除语句解除语句PURGE格式格式 PURGE 符号名符号名1,符号名,符号名2,此此语语句句本本身身没没有有符符号号名名,被被PURGE解解除除后后的的符符号号名名可可以重新定义,例:以重新定义,例:PURGE NUM1,CONT1第4章第3章第3章3.变量(数据)定义伪指令变变量量定定义义(Define)伪伪指指令令为为变变量量申申请请固固定定长长度度的的存存储储空空间间,并并可可同同时时将将相应的存储单元初始化相应的存储单元初始化变量名变量名 伪指令
17、助记符伪指令助记符 初值表初值表汇编语言规定有汇编语言规定有DB、DW、DD、DF、DQ、DT 变量定义伪指令最常使用变量定义伪指令最常使用第3章第3章第3章变量定义伪指令助记符变变量量定定义义伪伪指指令令根根据据申申请请的的主主存存空空间单位分类间单位分类DB定义字节伪指令定义字节伪指令DW定义字伪指令定义字伪指令DD定义双字伪指令定义双字伪指令DF定义定义3字伪指令字伪指令DQ定义定义4字伪指令字伪指令DT定义定义10字节伪指令字节伪指令第3章第3章第3章变量名变变量量名名为为用用户户自自定定义义标标识识符符,表表示示初初值值表表首首元元素素的的逻逻辑辑地地址址;用用这这个个符符号号表示地
18、址,常称为符号地址表示地址,常称为符号地址变变量量名名可可以以没没有有。这这种种情情况况,汇汇编编程程序序将将直直接接为为初初值值表表分分配配空空间间,无无符符号号地址地址设设置置变变量量名名是是为为了了方方便便存存取取它它指指示示的的存储单元存储单元第3章第3章第3章初始值可以是确定的值或字符串初始值可以是确定的值或字符串 DATA1 DW 9999HDATA2 DB OK初始值不确定而为任意值时则使用?初始值不确定而为任意值时则使用?DATA3 DD?简简化化定定义义过过程程可可使使用用重重复复定定义义伪伪指指令令DUP,例例如如定定义义一一个个拥拥有有256个个存存储储单单元元的的字字节
19、节型型数数据据缓缓冲冲区区BUFFB,初初值均为值均为0BUFFB DB 256 DUP(0)简简化化定定义义过过程程,可可以以在在一一条条伪伪指指令令中中用用逗逗号号分分隔隔而而构构成成任意组合序列任意组合序列BUFFB DB 0,0,ABC,?,?,?,?,0FFH第3章第3章第3章初值表初值表是用逗号分隔的参数初值表是用逗号分隔的参数主要由数值常数、表达式或?、主要由数值常数、表达式或?、变量中重复数据的定义格式变量中重复数据的定义格式:符号名符号名 Dn 表达式表达式1 DUP(表达式)(表达式)表达式表达式1:数据重复的次数数据重复的次数圆括弧内表达式:要重复的内容圆括弧内表达式:要
20、重复的内容?表示初值不确定,即未赋初值;表示初值不确定,即未赋初值;第3章第3章第3章定义字节单元伪指令DBDB伪伪指指令令用用于于分分配配一一个个或或多多个个字字节节单单元元,并可以将它们初始化为指定值并可以将它们初始化为指定值初初 值值 表表 中中 每每 个个 数数 据据 一一 定定 是是 字字 节节 量量(Byte),存放一个),存放一个8位数据:位数据:可以是可以是0255的无符号数的无符号数 或是或是128127带符号数带符号数 也可以是字符串常数也可以是字符串常数第3章第3章datadatasegmentsegment;数据段;数据段X Xdb a,-5db a,-5db 2 du
21、p(100),?db 2 dup(100),?Y Ydb ABCdb ABCdatadataendsends字节单元定字节单元定义实例义实例第3章第3章第3章mov al,Xmov al,X;此处此处X X表示它的第表示它的第1 1个数据,故个数据,故ALaALadec X+1dec X+1;对对X X为始的第为始的第2 2个数据减个数据减1 1,故成为,故成为-6-6mov Y,almov Y,al;现在现在Y Y这个字符串成为这个字符串成为 aaBCBC字节变量的字节变量的应用应用第3章第3章定义字单元伪指令DWDW伪伪指指令令用用于于分分配配一一个个或或多多个个字字单单元,并可以将它们初
22、始化为指定值元,并可以将它们初始化为指定值初初 值值 表表 中中 每每 个个 数数 据据 一一 定定 是是 字字 量量(Word),一一个个字字单单元元可可用用于于存存放放任任何何16位数据:位数据:一个段地址一个段地址一个偏移地址一个偏移地址 两个字符两个字符 065535之间的无符号数之间的无符号数 3276832767之间的带符号数之间的带符号数第3章第3章datadatasegmentsegment;数据段;数据段countcount dw 8000h,?,ABdw 8000h,?,ABmaxintmaxint equ 64hequ 64hnumbernumber dw maxintd
23、w maxintarrayarray dw maxint dup(0)dw maxint dup(0)datadataendsends字单元定义字单元定义实例实例第3章第3章字变量和字常量的定义:字变量和字常量的定义:WNUMWNUM EQU 5678HEQU 5678H;定义定义WNUMWNUM为常量为常量COUNTCOUNT DW 20H DW 20H;定定义义COUNTCOUNT是是赋赋了了初初值值的的变变量量,假假设设在在数数据据段段的的有效偏移地址为有效偏移地址为10H.10H.字变量和字常量的应用:字变量和字常量的应用:MOV AX,BX+SI+WNUMMOV AX,BX+SI+W
24、NUM;MOV AX,BX+SI+5678HMOV AX,BX+SI+5678HMOV AX,COUNTMOV AX,COUNT;MOV AX,0010HMOV AX,0010H ;AX=0020H AX=0020HMOV AX,SI+COUNTMOV AX,SI+COUNT;MOV AX,COUNTSIMOV AX,COUNTSI;MOV AX,SI+20HMOV AX,SI+20HLEA BX,COUNTLEA BX,COUNT;LEA BX,0010HLEA BX,0010HMOV BX,OFFSET COUNTMOV BX,OFFSET COUNT;MOV BX,0010HMOV BX
25、,0010H字变量和字常量字变量和字常量第3章第3章定义双字单元伪指令DDDD伪伪指指令令用用于于分分配配一一个个或或多多个个双双字字单单元元,并可以将它们初始化为指定值并可以将它们初始化为指定值初初值值表表中中每每个个数数据据是是一一个个3232位位的的双双字字量量(Double WordDouble Word):):可以是有符号或无符号的可以是有符号或无符号的3232位整数位整数 也可以用来表达也可以用来表达1616位段地址(高位字)和位段地址(高位字)和1616位的偏移地址(低位字)的远指针位的偏移地址(低位字)的远指针varddvarddDD 0,?,12345678hDD 0,?,1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 常用 指令 简介
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。