ImageVerifierCode 换一换
格式:PPT , 页数:31 ,大小:203KB ,
资源ID:1683991      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1683991.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(汇编语言程序格式.ppt)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

汇编语言程序格式.ppt

1、汇编语言程序格式汇编语言程序格式一、汇编语句类型和格式一、汇编语句类型和格式l1 1语句类型语句类型硬指令语句(指令性语句)是指能产生目标代码,CPU可以执行的,能完成特定功能的语句,它主要由CPU指令组成伪指令语句(指示性语句)是一种不产生目标代码的语句,它仅仅在汇编过程中告诉汇编程序应如何汇编宏指令语句 是一个指令序列,汇编时凡有宏指令语句的地方都将用相应的指令序列的目标代码插入l2 2语句的格式语句的格式l(1 1)执行性语句)执行性语句 标号标号:硬指令助记符硬指令助记符 操作数,操作数操作数,操作数 ;注释;注释l(2 2)说明性语句)说明性语句 名字名字 伪指令助记符伪指令助记符

2、参数,参数参数,参数 ;注释;注释二、完整段定义格式二、完整段定义格式 8086按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段一个汇编语言源程序可以包括若干个代码段、数据段或堆栈段段与段之间的顺序可以随意排列。逻辑段用汇编语言源程序中的段定义伪指令段定义伪指令来定义二、完整段定义格式二、完整段定义格式 完整段定义伪指令 指定段寄存器伪指令 段寄存器的装入 可执行程序的正常结束l1 1完整段定义伪指令(完整段定义伪指令(SEGMENTSEGMENT、ENDSENDS)作用:作用:控制汇编程序和连接程序在内存中组织代码和数据的方式。控制汇编程序和连接程序在内存中组织代码和数据的方式。格式:

3、格式:段名段名 SEGMENTSEGMENT 定位类型定位类型 组合类型组合类型 类别名类别名 段名段名 ENDSENDS注意:注意:uSEGMENTSEGMENT和和ENDSENDS总是总是成对出现成对出现u中间省略部分称为中间省略部分称为段体段体。对代码段来说,则主要是程序代码;。对代码段来说,则主要是程序代码;对其它段来说,一般用于变量、符号等的定义对其它段来说,一般用于变量、符号等的定义u方括号中的为可选项,当有可选项时方括号中的为可选项,当有可选项时各项顺序不能错各项顺序不能错,可选,可选项之间用空格隔开项之间用空格隔开l(1)(1)段名段名 段名是用户自定义的,但不要与指令助记符或

4、段名是用户自定义的,但不要与指令助记符或伪指令重名伪指令重名 用来用来指示汇编程序为该段分配的存储区的首地指示汇编程序为该段分配的存储区的首地址址 段名有段地址和偏移地址两个属性段名有段地址和偏移地址两个属性 段开始和段结束的段名必须相同段开始和段结束的段名必须相同l(2)(2)定位类型定位类型l 说明说明段的起始地址的边界要求段的起始地址的边界要求,指示连接程序,指示连接程序按定位类型提出的要求,安排各段在内存的按定位类型提出的要求,安排各段在内存的相互衔相互衔接方式接方式。它有。它有5 5种可选择类型:种可选择类型:l BYTEBYTE:段的起始地址可以从任何地址开始段的起始地址可以从任何

5、地址开始。l 段起始地址段起始地址(20(20位位):l B Bl WORD WORD:段的起始地址必须以:段的起始地址必须以偶地址开始偶地址开始l 段起始地址段起始地址(20(20位位):l 0 B0 Bl DWORD DWORD:段的起始地址:段的起始地址必须为必须为4 4的倍数的倍数l 段起始地址段起始地址(20(20位位):l 0 0 B0 0 Bl PARA PARA:段的起始地址必须:段的起始地址必须从小段边界开始从小段边界开始l 段起始地址段起始地址(20(20位位):l 0 0 0 0 B 0 0 0 0 Bl PAGEPAGE:段的起始地址:段的起始地址必须从页的边界开始必须

6、从页的边界开始l 段起始地址段起始地址(20(20位位):l 0 0 0 0 0 0 0 0 B 0 0 0 0 0 0 0 0 Bl如未指定定位类型,则汇编程序默认为如未指定定位类型,则汇编程序默认为PARAPARA。l(3)(3)组合类型组合类型l 当程序有多个段时,组合类型用来说明段与段之间是怎样连接和定位的,共有6种组合类型:l 不指定或称隐含方式:表示本段与其他模块中的同名段无连接关系,它将作为一个独立的段运行。l PUBLIC:本段与其他模块中说明为PUBLIC方式的同名段顺序连接,组成一个大的逻辑段,它们共用同一个段起始地址。l COMMON:本段与其他模块中说明为COMMON方

7、式的同名段从同一地址开始重叠连接,段长是同名段中最长的段的长度。l STACK STACK:表示:表示该段是堆栈段的一部分。把所有该段是堆栈段的一部分。把所有相同相同 类别名类别名的具有的具有STACKSTACK组合类型的段连接成组合类型的段连接成一个连续段一个连续段,该段长度为各原有段的总和。将,该段长度为各原有段的总和。将连续连续段首地址送段首地址送SSSS,段内最大偏移地址送,段内最大偏移地址送SPSP(SPSP指向栈指向栈顶)。当顶)。当定义了定义了STACKSTACK属性后,在主程序中可省略属性后,在主程序中可省略对对SSSS和和SPSP的初始化的初始化。l MEMORYMEMORY

8、与:与PUBLICPUBLIC同义。同义。l(4)(4)类别名类别名l 类别名必须用单引号括起来。连接时对不类别名必须用单引号括起来。连接时对不同模块、不同名的程序段只要同模块、不同名的程序段只要类别名类别名相同相同,则则放在一个连续的物理空间放在一个连续的物理空间,但每段之间是独立,但每段之间是独立的,不进行组合。的,不进行组合。l2 2指定段寄存器伪指令(指定段寄存器伪指令(ASSUMEASSUME)作用:作用:明确段和段寄存器之间的关系明确段和段寄存器之间的关系,即,即告诉汇编告诉汇编程序,在运行期间通过哪个段才能找到所要的指令程序,在运行期间通过哪个段才能找到所要的指令和数据和数据

9、格式:格式:ASSUMEASSUME 段寄存器名:段名段寄存器名:段名,段寄存器名:段名段寄存器名:段名 l 例如:例如:ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA,SSSS:STACKSTACKl3 3段寄存器的装入段寄存器的装入l ASSUME伪指令只是指出各段和段寄存器之间的关系,但并未真正将段基地址装入相应的段寄存器中,所以在程序的代码段开始处就应该先进行段基址的装入l 数据段DS、附加段ES和堆栈段SS的段基址由用户程序代码装入l 代码段CS在加载程序后由系统自动装入l(1)DS(1)DS、ESES的装入的装入l MOV AXMOV AX,DA

10、TA DATA ;数据段段基地址送;数据段段基地址送AXAX寄存器寄存器l MOV DSMOV DS,AX AX ;AXAX寄存器的内容送数据段寄存器寄存器的内容送数据段寄存器DSDSl或或l MOV AXMOV AX,SEG X SEG X ;变量;变量X X所在数据段的段基址送所在数据段的段基址送AXAX寄存寄存器器l MOV DSMOV DS,AXAXl(2)CS(2)CS的装入的装入l 对对CSCS和和IPIP的装入方法是利用的装入方法是利用ENDEND后的后的标号来标号来完成的。完成的。如:如:l STARTSTART:l l END END STARTSTARTl 系统自动将系统自

11、动将STARTSTART所在段的段地址送所在段的段地址送CSCS寄存寄存器,将器,将STARTSTART所在所在段内的偏移地址段内的偏移地址送送IPIP寄存器寄存器。l(3)SS(3)SS的装入的装入l方法方法1 1:由系统自动装填。由系统自动装填。要求在要求在定义堆栈段时,定义堆栈段时,必须把参数写全。必须把参数写全。这时,将程序装入内存,系统这时,将程序装入内存,系统会自动地把堆栈段地址和堆栈指针置入会自动地把堆栈段地址和堆栈指针置入SSSS和和SPSP中,中,因而可以不在代码段中装入因而可以不在代码段中装入SSSS和和SPSP的值。的值。STACK1 SEGMENT STACK1 SEG

12、MENT PARA STACK PARA STACK STACKSTACKDB 50H DUP(?)DB 50H DUP(?)STACK1 ENDSSTACK1 ENDSl方法方法2 2:手动装填手动装填lSTACK1 SEGMENT PARASTACK1 SEGMENT PARAlDW 50H DUP(?)DW 50H DUP(?)lTOP LABEL WORDTOP LABEL WORD;TOPTOP属性为属性为WORDWORDlSTACK1 ENDSSTACK1 ENDSlCODE SEGMENTCODE SEGMENTlASSUME CSASSUME CS:CODECODE,SSSS:

13、STACK1STACK1lSTARTSTART:l MOV AXMOV AX,STACK1STACK1lMOV SSMOV SS,AXAX ;堆栈段的段地址送;堆栈段的段地址送SSSSlMOV SPMOV SP,OFFSET TOPOFFSET TOP;堆栈段的栈顶地址送;堆栈段的栈顶地址送SPSPllTOPTOP是该堆栈的初始栈顶部地址。是该堆栈的初始栈顶部地址。l4 4操作系统下操作系统下可执行程序的正常结束可执行程序的正常结束l方法方法1(1(非标准方法非标准方法):):l 在在CODE ENDSCODE ENDS之前增加如下语句:之前增加如下语句:l MOV AXMOV AX,4C00

14、H4C00Hl INT 21H INT 21Hl方法方法2(2(标准方法标准方法):):lMAIN PROC FARMAIN PROC FARlPUSH DSPUSH DS ;保存原来的;保存原来的PSPPSP段地址段地址lMOV AXMOV AX,0H0H ;0 0送送AX AX lPUSH AXPUSH AX ;0 0压栈压栈llRETRET ;返回;返回DOSDOSlMAIN ENDPMAIN ENDPl完整段定义的源程序格式完整段定义的源程序格式l DATA SEGMENTDATA SEGMENT;定义数据段;定义数据段DATADATAl STRING STRING DB DB Hel

15、loHello,Everybody Everybody!,0DH0DH,0AH0AH,$l DATA ENDSDATA ENDS;数据段结束;数据段结束l CODE SEGMENTCODE SEGMENT ;定义代码段;定义代码段CODE CODE l ASSUME CSASSUME CS:CODECODE,DSDS:DATADATAl ;确定;确定CSCS、DSDS、SSSS指向的逻辑段指向的逻辑段l STARTSTART:MOV AXMOV AX,DATADATA ;设置数据段的段地址;设置数据段的段地址DSDSl MOV DSMOV DS,AXAXl MOV DX MOV DX,OFFS

16、ET STRINGOFFSET STRING;利用功能调用显示信息;利用功能调用显示信息l MOV AHMOV AH,9 9l INT 21H INT 21Hl MOV AH MOV AH,4CH 4CH ;利用系统功能调用返回;利用系统功能调用返回DOSDOSl INT 21H INT 21Hl CODE ENDS CODE ENDS ;代码段结束;代码段结束l END START END START ;汇编结束;汇编结束三、简化段定义格式三、简化段定义格式l 简化的段定义简化的段定义书写简单书写简单,有利于有利于实现汇编语实现汇编语言程序模块与高级语言程序模块的言程序模块与高级语言程序模块

17、的连接连接,它可以由,它可以由操作系统自动安排段序,自动保证名字定义的一致操作系统自动安排段序,自动保证名字定义的一致性。性。l1 1存储模式选择伪操作存储模式选择伪操作(MODEL)(MODEL)格式:格式:MODEL MODEL MODEL MODEL 模式类型模式类型模式类型模式类型 功能:功能:l 本语句本语句一般放在段定义之前一般放在段定义之前,用来,用来说明在说明在存储器中是如何安放各个段存储器中是如何安放各个段的。的。l 模式类型说明代码段、数据段在程序中如模式类型说明代码段、数据段在程序中如何安排;代码、数据的寻址是近还是远。何安排;代码、数据的寻址是近还是远。l 根据它们的不

18、同组合,模式类型可以有如根据它们的不同组合,模式类型可以有如下下5 5种种。l Tiny Tiny模式:也叫微模式,模式:也叫微模式,所有数据及代码放所有数据及代码放入同一个物理段内入同一个物理段内,该模式用于编写较小的源程序,该模式用于编写较小的源程序,这种模式的源程序最终可以形成这种模式的源程序最终可以形成COMCOM文件文件。l SmallSmall:也叫小模式,:也叫小模式,所有数据放入一个所有数据放入一个 64KB64KB的段中,所有代码放入另一个的段中,所有代码放入另一个64KB64KB的段中的段中,即,即程序中只有一个数据段和一个代码段这是一般应用程序中只有一个数据段和一个代码段

19、这是一般应用程序最常用的一种模式。程序最常用的一种模式。l Medium Medium:也叫中模式:也叫中模式:所有数据放入一个所有数据放入一个 64KB64KB的段中,代码可以放入多于一个的段中的段中,代码可以放入多于一个的段中,即,即程序中可以有多个代码段程序中可以有多个代码段。l CompactCompact:也叫压缩模式,所有代码放入一也叫压缩模式,所有代码放入一个个64KB64KB的段中;数据可以放入多于一个的段中的段中;数据可以放入多于一个的段中,即程序中即程序中可以有多个数据段可以有多个数据段。l LargeLarge:也叫大模式,代码和数据都可以分:也叫大模式,代码和数据都可以

20、分别放入多于一个的段中,即程序中别放入多于一个的段中,即程序中可以有多个代可以有多个代码段和多个数据段码段和多个数据段。l2 2数据段定义伪指令数据段定义伪指令(.DATA)(.DATA)格式:格式:.DATA .DATA 名字名字 定义一个数据段,如果定义一个数据段,如果有多个数据段,则用名字来区有多个数据段,则用名字来区别:别:只有一个数据段时,只有一个数据段时,隐含段名为隐含段名为DATADATA。l3 3堆栈段定义伪指令堆栈段定义伪指令(.STACK)(.STACK)格式:格式:.STACK .STACK 长度长度 定义一个堆栈段,并形成定义一个堆栈段,并形成SSSS及及SPSP的初值

21、的初值,SPSP的默认值的默认值为为10241024,隐含段名为,隐含段名为STACKSTACK。可选的长度参数指定堆栈可选的长度参数指定堆栈段所占存储区的字节数,默认大小是段所占存储区的字节数,默认大小是1KB1KB。l4 4代码段定义伪指令代码段定义伪指令(.CODE)(.CODE)格式:格式:.CODE .CODE 名字名字 定义一个代码段,如果有定义一个代码段,如果有多个代码段,则用名字来多个代码段,则用名字来 区区别别:只有一个代码段时,:只有一个代码段时,隐含段名为隐含段名为CODECODE。l5 5程序开始伪指令程序开始伪指令(.STARTUP)(.STARTUP)格式:格式:

22、STARTUP.STARTUPl 产生程序开始执行的代码产生程序开始执行的代码,同时还,同时还指定了程指定了程序开始执行的起点。序开始执行的起点。l 在在小小模模式式下下,可可以以省省略略将将数数据据段段基基址址装装入入DSDS的语句的语句。l6 6程序返回伪指令程序返回伪指令(.EXIT)(.EXIT)格式:格式:.EXIT .EXIT 参数参数 功能:功能:.EXIT.EXIT产生终止程序执行返回操作系统的产生终止程序执行返回操作系统的指令代码。可选参数是一个返回的数码,指令代码。可选参数是一个返回的数码,通常用通常用0 0代表没有错误代表没有错误l 例如:例如:.EXIT 0.EXIT

23、 0对应的代码是:对应的代码是:l MOV AXMOV AX,4C00H4C00Hl INT 21H INT 21Hl简化段定义的源程序格式简化段定义的源程序格式lMODELMODELSMALLSMALL ;定义程序的存储模式;定义程序的存储模式lSTACKSTACK;定义堆栈段;定义堆栈段lDATADATA ;定义数据段;定义数据段l STRING DB STRING DB HelloHello,Everybody!Everybody!,0DH0DH,0AH0AH,$l ;在数据段定义要显示的字符串;在数据段定义要显示的字符串lCODECODE ;定义代码段;定义代码段lSTARTUPSTA

24、RTUP ;说明程序起始位置,并建立;说明程序起始位置,并建立DSDS、SSSS内容内容l MOV DXMOV DX,OFFSET STRINGOFFSET STRING;指定字符串在数据段的偏移地址;指定字符串在数据段的偏移地址l MOV AHMOV AH,9 9l INT 21H INT 21H ;利用;利用DOSDOS功能调用显示信息功能调用显示信息lEXIT 0EXIT 0 ;程序结束点,返回;程序结束点,返回DOSDOSl ENDEND ;汇编结束;汇编结束l简化段定义的源程序格式简化段定义的源程序格式lMODELMODELSMALLSMALL ;定义程序的存储模式;定义程序的存储模

25、式lSTACKSTACK;定义堆栈段;定义堆栈段lDATADATA ;定义数据段;定义数据段l STRING DB STRING DB HelloHello,Everybody!Everybody!,0DH0DH,0AH0AH,$l ;在数据段定义要显示的字符串;在数据段定义要显示的字符串lCODECODE ;定义代码段;定义代码段lStart:Start:l MOV AX,DATA MOV AX,DATAl MOV DS,A MOV DS,A ;说明程序起始位置,并建立;说明程序起始位置,并建立DSDS、SSSS内容内容l MOV DXMOV DX,OFFSET STRINGOFFSET S

26、TRING ;指定字符串在数据段的偏移地址;指定字符串在数据段的偏移地址l MOV AHMOV AH,9 9l INT 21H INT 21H ;利用;利用DOSDOS功能调用显示信息功能调用显示信息l MOV AH,4cHMOV AH,4cHl INT 21H INT 21H ;程序结束点,返回;程序结束点,返回DOSDOSl END startEND start ;汇编结束;汇编结束综合练习综合练习l在数据段定义一字节变量,存储一个在数据段定义一字节变量,存储一个0-90-9之间之间的十进制数的十进制数l(1 1)编写汇编语言源程序,将该十进制数显)编写汇编语言源程序,将该十进制数显示到屏

27、幕上示到屏幕上l(2 2)用)用debugdebug将汇编生成的可执行文件调入内将汇编生成的可执行文件调入内存,查看数据段的内容存,查看数据段的内容l(3 3)在内存中修改数据段中定义的十进制数,)在内存中修改数据段中定义的十进制数,用用t t或或g g命令显示运行结果命令显示运行结果l思考:思考:l(1)(1)如何在屏幕上显示一个两位的十六进制数如何在屏幕上显示一个两位的十六进制数l(2)(2)如何在屏幕上显示一个两位的十进制数如何在屏幕上显示一个两位的十进制数l DATA SEGMENT DATA SEGMENTl A DB 6 A DB 6l DATA ENDS DATA ENDSl CODE SEGMENT CODE SEGMENT l ASSUME CS ASSUME CS:CODECODE,DSDS:DATADATAl START START:MOV AXMOV AX,DATADATAl MOV DS MOV DS,AXAXl MOV DL,6 MOV DL,6l ADD DL,30H ADD DL,30Hl MOV AH,2 MOV AH,2l INT 21H INT 21Hl MOV AH MOV AH,4CH4CHl INT 21H INT 21Hl CODE ENDS CODE ENDSl END START END START

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服