分享
分销 收藏 举报 申诉 / 30
播放页_导航下方通栏广告

类型汇编语言程序格式.pptx

  • 上传人:精***
  • 文档编号:4224412
  • 上传时间:2024-08-26
  • 格式:PPTX
  • 页数:30
  • 大小:193.43KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    汇编语言 程序 格式
    资源描述:
    汇编语言程序格式汇编语言程序格式一、汇编语句类型和格式一、汇编语句类型和格式1 1语句类型语句类型硬指令语句(指令性语句)是指能产生目标代码,CPU可以执行的,能完成特定功能的语句,它主要由CPU指令组成伪指令语句(指示性语句)是一种不产生目标代码的语句,它仅仅在汇编过程中告诉汇编程序应如何汇编宏指令语句 是一个指令序列,汇编时凡有宏指令语句的地方都将用相应的指令序列的目标代码插入汇编语言程序格式汇编语言程序格式2 2语句的格式语句的格式(1 1)执行性语句)执行性语句 标号标号:硬指令助记符硬指令助记符 操作数,操作数操作数,操作数 ;注释;注释(2 2)说明性语句)说明性语句 名字名字 伪指令助记符伪指令助记符 参数,参数参数,参数 ;注释;注释汇编语言程序格式汇编语言程序格式二、完整段定义格式二、完整段定义格式 8086按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段一个汇编语言源程序可以包括若干个代码段、数据段或堆栈段段与段之间的顺序可以随意排列。逻辑段用汇编语言源程序中的段定义伪指令段定义伪指令来定义汇编语言程序格式汇编语言程序格式二、完整段定义格式二、完整段定义格式 完整段定义伪指令 指定段寄存器伪指令 段寄存器的装入 可执行程序的正常结束汇编语言程序格式汇编语言程序格式1 1完整段定义伪指令(完整段定义伪指令(SEGMENTSEGMENT、ENDSENDS)作用:作用:控制汇编程序和连接程序在内存中组织代码和数据的方式。控制汇编程序和连接程序在内存中组织代码和数据的方式。格式:格式:段名段名 SEGMENTSEGMENT 定位类型定位类型 组合类型组合类型 类别名类别名 段名段名 ENDSENDS注意:注意:uSEGMENTSEGMENT和和ENDSENDS总是总是成对出现成对出现u中间省略部分称为中间省略部分称为段体段体。对代码段来说,则主要是程序代码;。对代码段来说,则主要是程序代码;对其它段来说,一般用于变量、符号等的定义对其它段来说,一般用于变量、符号等的定义u方括号中的为可选项,当有可选项时方括号中的为可选项,当有可选项时各项顺序不能错各项顺序不能错,可选,可选项之间用空格隔开项之间用空格隔开汇编语言程序格式汇编语言程序格式(1)(1)段名段名 段名是用户自定义的,但不要与指令助记符或伪指令段名是用户自定义的,但不要与指令助记符或伪指令重名重名 用来用来指示汇编程序为该段分配的存储区的首地址指示汇编程序为该段分配的存储区的首地址 段名有段地址和偏移地址两个属性段名有段地址和偏移地址两个属性 段开始和段结束的段名必须相同段开始和段结束的段名必须相同汇编语言程序格式汇编语言程序格式(2)(2)定位类型定位类型 说明说明段的起始地址的边界要求段的起始地址的边界要求,指示连接程序按定位类,指示连接程序按定位类型提出的要求,安排各段在内存的型提出的要求,安排各段在内存的相互衔接方式相互衔接方式。它有。它有5 5种可种可选择类型:选择类型:BYTEBYTE:段的起始地址可以从任何地址开始段的起始地址可以从任何地址开始。段起始地址段起始地址(20(20位位):B B WORD WORD:段的起始地址必须以:段的起始地址必须以偶地址开始偶地址开始 段起始地址段起始地址(20(20位位):0 B 0 B汇编语言程序格式汇编语言程序格式 DWORD DWORD:段的起始地址:段的起始地址必须为必须为4 4的倍数的倍数 段起始地址段起始地址(20(20位位):0 0 B 0 0 B PARA PARA:段的起始地址必须:段的起始地址必须从小段边界开始从小段边界开始 段起始地址段起始地址(20(20位位):0 0 0 0 B 0 0 0 0 B PAGEPAGE:段的起始地址:段的起始地址必须从页的边界开始必须从页的边界开始 段起始地址段起始地址(20(20位位):0 0 0 0 0 0 0 0 B 0 0 0 0 0 0 0 0 B如未指定定位类型,则汇编程序默认为如未指定定位类型,则汇编程序默认为PARAPARA。汇编语言程序格式汇编语言程序格式(3)(3)组合类型组合类型 当程序有多个段时,组合类型用来说明段与段之间是怎样连接和定位的,共有6种组合类型:不指定或称隐含方式:表示本段与其他模块中的同名段无连接关系,它将作为一个独立的段运行。PUBLIC:本段与其他模块中说明为PUBLIC方式的同名段顺序连接,组成一个大的逻辑段,它们共用同一个段起始地址。COMMON:本段与其他模块中说明为COMMON方式的同名段从同一地址开始重叠连接,段长是同名段中最长的段的长度。汇编语言程序格式汇编语言程序格式 STACK STACK:表示:表示该段是堆栈段的一部分。把所有相同该段是堆栈段的一部分。把所有相同 类类别名别名的具有的具有STACKSTACK组合类型的段连接成一个连续段组合类型的段连接成一个连续段,该段,该段长度为各原有段的总和。将长度为各原有段的总和。将连续段首地址送连续段首地址送SSSS,段内最大偏,段内最大偏移地址送移地址送SPSP(SPSP指向栈顶)。当指向栈顶)。当定义了定义了STACKSTACK属性后,在主属性后,在主程序中可省略对程序中可省略对SSSS和和SPSP的初始化的初始化。MEMORYMEMORY:与:与PUBLICPUBLIC同义。同义。汇编语言程序格式汇编语言程序格式(4)(4)类别名类别名 类别名必须用单引号括起来。连接时对不同模块、类别名必须用单引号括起来。连接时对不同模块、不同名的程序段只要不同名的程序段只要类别名类别名相同相同,则,则放在一个连续放在一个连续的物理空间的物理空间,但每段之间是独立的,不进行组合。,但每段之间是独立的,不进行组合。汇编语言程序格式汇编语言程序格式2 2指定段寄存器伪指令(指定段寄存器伪指令(ASSUMEASSUME)作用:作用:明确段和段寄存器之间的关系明确段和段寄存器之间的关系,即,即告诉汇编程序,告诉汇编程序,在运行期间通过哪个段才能找到所要的指令和数据在运行期间通过哪个段才能找到所要的指令和数据 格式:格式:ASSUMEASSUME 段寄存器名:段名段寄存器名:段名,段寄存器名:段名段寄存器名:段名 例如:例如:ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA,SSSS:STACKSTACK汇编语言程序格式汇编语言程序格式3 3段寄存器的装入段寄存器的装入 ASSUME伪指令只是指出各段和段寄存器之间的关系,但并未真正将段基地址装入相应的段寄存器中,所以在程序的代码段开始处就应该先进行段基址的装入 数据段DS、附加段ES和堆栈段SS的段基址由用户程序代码装入 代码段CS在加载程序后由系统自动装入汇编语言程序格式汇编语言程序格式(1)DS(1)DS、ESES的装入的装入 MOV AXMOV AX,DATA DATA ;数据段段基地址送;数据段段基地址送AXAX寄存器寄存器 MOV DSMOV DS,AX AX ;AXAX寄存器的内容送数据段寄存器寄存器的内容送数据段寄存器DSDS或或 MOV AXMOV AX,SEG X SEG X ;变量;变量X X所在数据段的段基址送所在数据段的段基址送AXAX寄存器寄存器 MOV DSMOV DS,AXAX汇编语言程序格式汇编语言程序格式(2)CS(2)CS的装入的装入 对对CSCS和和IPIP的装入方法是利用的装入方法是利用ENDEND后的后的标号来完成的。标号来完成的。如:如:STARTSTART:END END STARTSTART 系统自动将系统自动将STARTSTART所在段的段地址送所在段的段地址送CSCS寄存器,将寄存器,将STARTSTART所在所在段内的偏移地址段内的偏移地址送送IPIP寄存器寄存器。汇编语言程序格式汇编语言程序格式(3)SS(3)SS的装入的装入方法方法1 1:由系统自动装填。由系统自动装填。要求在要求在定义堆栈段时,必须把定义堆栈段时,必须把参数写全。参数写全。这时,将程序装入内存,系统会自动地把堆这时,将程序装入内存,系统会自动地把堆栈段地址和堆栈指针置入栈段地址和堆栈指针置入SSSS和和SPSP中,因而可以不在代码中,因而可以不在代码段中装入段中装入SSSS和和SPSP的值。的值。STACK1 SEGMENT STACK1 SEGMENT PARA STACK PARA STACK STACKSTACKDB 50H DUP(?)DB 50H DUP(?)STACK1 ENDSSTACK1 ENDS汇编语言程序格式汇编语言程序格式方法方法2 2:手动装填手动装填STACK1 SEGMENT PARASTACK1 SEGMENT PARADW 50H DUP(?)DW 50H DUP(?)TOP LABEL WORDTOP LABEL WORD;TOPTOP属性为属性为WORDWORDSTACK1 ENDSSTACK1 ENDSCODE SEGMENTCODE SEGMENTASSUME CSASSUME CS:CODECODE,SSSS:STACK1STACK1STARTSTART:MOV AXMOV AX,STACK1STACK1MOV SSMOV SS,AXAX ;堆栈段的段地址送;堆栈段的段地址送SSSSMOV SPMOV SP,OFFSET TOPOFFSET TOP;堆栈段的栈顶地址送;堆栈段的栈顶地址送SPSPTOPTOP是该堆栈的初始栈顶部地址。是该堆栈的初始栈顶部地址。汇编语言程序格式汇编语言程序格式4 4操作系统下操作系统下可执行程序的正常结束可执行程序的正常结束方法方法1(1(非标准方法非标准方法):):在在CODE ENDSCODE ENDS之前增加如下语句:之前增加如下语句:MOV AXMOV AX,4C00H4C00H INT 21H INT 21H方法方法2(2(标准方法标准方法):):MAIN PROC FARMAIN PROC FARPUSH DSPUSH DS ;保存原来的;保存原来的PSPPSP段地址段地址MOV AXMOV AX,0H0H ;0 0送送AX AX PUSH AXPUSH AX ;0 0压栈压栈RETRET ;返回;返回DOSDOSMAIN ENDPMAIN ENDP汇编语言程序格式汇编语言程序格式完整段定义的源程序格式完整段定义的源程序格式 DATA SEGMENTDATA SEGMENT;定义数据段;定义数据段DATADATA STRING STRINGDB DB HelloHello,Everybody Everybody!,0DH0DH,0AH0AH,$DATA ENDSDATA ENDS;数据段结束;数据段结束 CODE SEGMENTCODE SEGMENT ;定义代码段;定义代码段CODE CODE ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA ;确定;确定CSCS、DSDS、SSSS指向的逻辑段指向的逻辑段 STARTSTART:MOV AXMOV AX,DATADATA ;设置数据段的段地址;设置数据段的段地址DSDS MOV DSMOV DS,AXAX MOV DX MOV DX,OFFSET STRINGOFFSET STRING;利用功能调用显示信息;利用功能调用显示信息 MOV AHMOV AH,9 9 INT 21H INT 21H MOV AH MOV AH,4CH 4CH ;利用系统功能调用返回;利用系统功能调用返回DOSDOS INT 21H INT 21H CODE ENDS CODE ENDS ;代码段结束;代码段结束 END START END START ;汇编结束;汇编结束汇编语言程序格式汇编语言程序格式三、简化段定义格式三、简化段定义格式 简化的段定义简化的段定义书写简单书写简单,有利于有利于实现汇编语言程序模块实现汇编语言程序模块与高级语言程序模块的与高级语言程序模块的连接连接,它可以由操作系统自动安排段,它可以由操作系统自动安排段序,自动保证名字定义的一致性。序,自动保证名字定义的一致性。汇编语言程序格式汇编语言程序格式1 1存储模式选择伪操作存储模式选择伪操作(MODEL)(MODEL)格式:格式:MODEL MODEL MODEL MODEL 模式类型模式类型模式类型模式类型 功能:功能:本语句本语句一般放在段定义之前一般放在段定义之前,用来,用来说明在存储器中说明在存储器中是如何安放各个段是如何安放各个段的。的。模式类型说明代码段、数据段在程序中如何安排;模式类型说明代码段、数据段在程序中如何安排;代码、数据的寻址是近还是远。代码、数据的寻址是近还是远。根据它们的不同组合,模式类型可以有如下根据它们的不同组合,模式类型可以有如下5 5种种。汇编语言程序格式汇编语言程序格式 Tiny Tiny模式:也叫微模式,模式:也叫微模式,所有数据及代码放入同一个物所有数据及代码放入同一个物理段内理段内,该模式用于编写较小的源程序,这种模式的源程序,该模式用于编写较小的源程序,这种模式的源程序最终可以形成最终可以形成COMCOM文件文件。SmallSmall:也叫小模式,:也叫小模式,所有数据放入一个所有数据放入一个 64KB64KB的段中,的段中,所有代码放入另一个所有代码放入另一个64KB64KB的段中的段中,即程序中只有一个数据段,即程序中只有一个数据段和一个代码段这是一般应用程序最常用的一种模式。和一个代码段这是一般应用程序最常用的一种模式。汇编语言程序格式汇编语言程序格式 Medium Medium:也叫中模式:也叫中模式:所有数据放入一个所有数据放入一个 64KB64KB的段的段中,代码可以放入多于一个的段中中,代码可以放入多于一个的段中,即,即程序中可以有多程序中可以有多个代码段个代码段。CompactCompact:也叫压缩模式,所有代码放入一个也叫压缩模式,所有代码放入一个64KB64KB的的段中;数据可以放入多于一个的段中段中;数据可以放入多于一个的段中,即程序中,即程序中可以有可以有多个数据段多个数据段。LargeLarge:也叫大模式,代码和数据都可以分别放入多:也叫大模式,代码和数据都可以分别放入多于一个的段中,即程序中于一个的段中,即程序中可以有多个代码段和多个数据可以有多个代码段和多个数据段段。汇编语言程序格式汇编语言程序格式2 2数据段定义伪指令数据段定义伪指令(.DATA)(.DATA)格式:格式:.DATA .DATA 名字名字 定义一个数据段,如果定义一个数据段,如果有多个数据段,则用名字来区有多个数据段,则用名字来区别:别:只有一个数据段时,只有一个数据段时,隐含段名为隐含段名为DATADATA。3 3堆栈段定义伪指令堆栈段定义伪指令(.STACK)(.STACK)格式:格式:.STACK .STACK 长度长度 定义一个堆栈段,并形成定义一个堆栈段,并形成SSSS及及SPSP的初值,的初值,SPSP的默认值的默认值为为10241024,隐含段名为,隐含段名为STACKSTACK。可选的长度参数指定堆栈可选的长度参数指定堆栈段所占存储区的字节数,默认大小是段所占存储区的字节数,默认大小是1KB1KB。汇编语言程序格式汇编语言程序格式4 4代码段定义伪指令代码段定义伪指令(.CODE)(.CODE)格式:格式:.CODE .CODE 名字名字 定义一个代码段,如果有定义一个代码段,如果有多个代码段,则用名字来多个代码段,则用名字来 区区别别:只有一个代码段时,:只有一个代码段时,隐含段名为隐含段名为CODECODE。5 5程序开始伪指令程序开始伪指令(.STARTUP)(.STARTUP)格式:格式:.STARTUP.STARTUP 产生程序开始执行的代码产生程序开始执行的代码,同时还,同时还指定了程序开始执指定了程序开始执行的起点。行的起点。在小模式下,在小模式下,可以省略将数据段基址装入可以省略将数据段基址装入DSDS的语句的语句。汇编语言程序格式汇编语言程序格式6 6程序返回伪指令程序返回伪指令(.EXIT)(.EXIT)格式:格式:.EXIT .EXIT 参数参数 功能:功能:.EXIT.EXIT产生终止程序执行返回操作系统的指令代产生终止程序执行返回操作系统的指令代码。可选参数是一个返回的数码,通常用码。可选参数是一个返回的数码,通常用0 0代表代表没有错误没有错误 例如:例如:.EXIT 0.EXIT 0对应的代码是:对应的代码是:MOV AXMOV AX,4C00H4C00H INT 21H INT 21H汇编语言程序格式汇编语言程序格式简化段定义的源程序格式简化段定义的源程序格式MODELMODEL SMALLSMALL ;定义程序的存储模式;定义程序的存储模式STACKSTACK;定义堆栈段;定义堆栈段DATADATA ;定义数据段;定义数据段 STRING DB STRING DB HelloHello,Everybody!Everybody!,0DH0DH,0AH0AH,$;在数据段定义要显示的字符串;在数据段定义要显示的字符串CODECODE ;定义代码段;定义代码段STARTUPSTARTUP ;说明程序起始位置,并建立;说明程序起始位置,并建立DSDS、SSSS内容内容 MOV DXMOV DX,OFFSET STRINGOFFSET STRING;指定字符串在数据段的偏移地址;指定字符串在数据段的偏移地址 MOV AHMOV AH,9 9 INT 21H INT 21H ;利用;利用DOSDOS功能调用显示信息功能调用显示信息EXIT 0EXIT 0 ;程序结束点,返回;程序结束点,返回DOSDOS ENDEND ;汇编结束;汇编结束汇编语言程序格式汇编语言程序格式简化段定义的源程序格式简化段定义的源程序格式MODELMODEL SMALLSMALL ;定义程序的存储模式;定义程序的存储模式STACKSTACK;定义堆栈段;定义堆栈段DATADATA ;定义数据段;定义数据段 STRING DB STRING DB HelloHello,Everybody!Everybody!,0DH0DH,0AH0AH,$;在数据段定义要显示的字符串;在数据段定义要显示的字符串CODECODE ;定义代码段;定义代码段Start:Start:MOV AX,DATA MOV AX,DATA MOV DS,A MOV DS,A ;说明程序起始位置,并建立;说明程序起始位置,并建立DSDS、SSSS内容内容 MOV DXMOV DX,OFFSET STRINGOFFSET STRING ;指定字符串在数据段的偏移地址;指定字符串在数据段的偏移地址 MOV AHMOV AH,9 9 INT 21H INT 21H ;利用;利用DOSDOS功能调用显示信息功能调用显示信息 MOV AH,4cHMOV AH,4cH INT 21H INT 21H ;程序结束点,返回;程序结束点,返回DOSDOS END startEND start ;汇编结束;汇编结束汇编语言程序格式汇编语言程序格式综合练习综合练习在数据段定义一字节变量,存储一个在数据段定义一字节变量,存储一个0-90-9之间的十进制数之间的十进制数(1 1)编写汇编语言源程序,将该十进制数显示到屏幕上)编写汇编语言源程序,将该十进制数显示到屏幕上(2 2)用)用debugdebug将汇编生成的可执行文件调入内存,查看将汇编生成的可执行文件调入内存,查看数据段的内容数据段的内容(3 3)在内存中修改数据段中定义的十进制数,用)在内存中修改数据段中定义的十进制数,用t t或或g g命命令显示运行结果令显示运行结果思考:思考:(1)(1)如何在屏幕上显示一个两位的十六进制数如何在屏幕上显示一个两位的十六进制数(2)(2)如何在屏幕上显示一个两位的十进制数如何在屏幕上显示一个两位的十进制数汇编语言程序格式汇编语言程序格式 DATA SEGMENT DATA SEGMENT A DB 6 A DB 6 DATA ENDS DATA ENDS CODE SEGMENT CODE SEGMENT ASSUME CS ASSUME CS:CODECODE,DSDS:DATADATA START START:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX MOV DL,6 MOV DL,6 ADD DL,30H ADD DL,30H MOV AH,2 MOV AH,2 INT 21H INT 21H MOV AH MOV AH,4CH4CH INT 21H INT 21H CODE ENDS CODE ENDS END START END START
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:汇编语言程序格式.pptx
    链接地址:https://www.zixin.com.cn/doc/4224412.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


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

    自信网络  |  ZixinNetwork