文档详情

汇编语言程序格式.ppt

发布:2024-12-21约1.66万字共80页下载文档
文本预览下载声明

【例】代码段的定义实例CODE1 SEGMENTMOV AX,DATA1 ;把数据段DATA1的段值送AXMOV DS,AX ;把AX的值送给DS,即DS存储数据段的段值MOV AX,4C00HINT 21H ;调用DOS功能,结束程序的运行CODE1 ENDS第63页,共80页,星期六,2024年,5月段寄存器的说明语句在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。建立这种对应关系的说明语句格式如下:ASSUME段寄存器名:段名[,段寄存器名:段名,……]其中,段寄存器是CS、DS、ES、SS,段名是在段定义语句说明时的段名。第64页,共80页,星期六,2024年,5月【例】段寄存器的说明实例DATA1SEGMENT ;定义数据段DATA1WORD1 DW4231HBYTE1 DBAAAAFFFDATA1 ENDSDATA2SEGMENT ;定义数据段DATA2WORD2 DW5566HWORD3 DW7878HDATA2 ENDSDATA3SEGMENT ;定义数据段DATA3BYTE2 DB?DATA3 ENDSCODE1SEGMENT ;编写代码段CODE1ASSUMECS:CODE1,DS:DATA1,ES:DATA2 ;(1)MOVAX,DATA1 ;(2)MOVDS,AX ;(3)MOVAX,DATA2 ;(4)MOVES,AX ;(5) MOVAX,WORD1 ;访问段DATA1中的字变量WORD1MOVWORD2,AX ;访问段DATA2中的字变量WORD2 ASSUMEDS:DATA3,ES:NOTHING ;(6)MOV AX,DATA3MOV DS,AXMOVBL,BYTE2 ;访问段DATA3中的字节变量BYTE2 MOV AX,4C00H ;(7)INT 21H ;(8)CODE1 ENDS第65页,共80页,星期六,2024年,5月堆栈段的说明堆栈段是一个特殊的段,在程序中可以定义它,也可以不定义。除了要生成COM型执行文件的源程序外,一个完整的源程序一般最好定义堆栈段。如果在程序中不定义堆栈段,那么,操作系统在装入该执行程序时将自动为其指定一个64KB的堆栈段。第66页,共80页,星期六,2024年,5月简化段定义用完整的段定义格式可以控制段的各种属性,MASM5.0以后的汇编程序提供了一种简化的段定义方式,它使定义段更简单、方便。第67页,共80页,星期六,2024年,5月存储模型伪指令程序存储模型伪指令的格式如下:.MODEL存储模型[,语言类型][,操作系统类型][,堆栈类型]存储模型功能适用系统Tiny(微型)所有数据和代码都放在一个段内,其访问都为NEAR型,整个程序小于或等于64KB,并会产生.COM文件MS-DOSSmall(小型)所有代码在一个64KB的段内,所有数据在另一个64KB的段内(包括数据段、堆栈段和附加段)MS-DOSWindowsMedium(中型)所有代码大于64KB时可放在多个代码段中,转移或调用可为FAR型。所有数据限在一个段内,DS可保持不变MS-DOSWindowsCompact(紧凑型)所有代码限在一个段内,转移或调用可为NEAR型。数据大于64KB时,可放在多个段中MS-DOSWindowsLarge(大型)代码段和数据段都可超过64KB,被放置在有多个段内,所以数据和代码都是远访问MS-DOSWindowsHuge(巨型)单个数据项可以超过64KB,其他同Large模型MS-DOSWindowsFlat(平展型)所有代码和数据放置在一个段中,但段地址是32位的,所以整个程序可为4GB。MASM6.0支持该模型OS/2WindowsNT第68页,共80页,星期六,2024年,5月简化的段伪指令简化段伪指令功能注释.CODE[段名]

显示全部
相似文档