文档详情

汇编语言4(清华大学沈美明)教程.ppt

发布:2017-04-28约1.68千字共19页下载文档
文本预览下载声明
第4章 汇编语言程序格式;4.1、汇编语言的功能;DATA SEGMENT A DB 25 B DB 43 C DB 76 Y DB ? DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS;4.2、伪操作;指令语句与伪指令语句格式:(续) [名字] 操作符 操作数 [;注释] 操作符:即指令的助记符,指明语句的功能。 操作数:指明指令的操作对象。 注释:任选段。以“;”开始;4.2.1、处理器选择伪操作;4.2.2、段定义伪操作;组合类型:说明多个程序块连接时,本模块与其它模块的同名段如何组合,有6种选择: None/PRIVATE:隐含值,表示本段与其他段无连接关系。 PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的段连接在一起,共同占用连续的存储单元,形成一个新段,重新调整偏移量。 COMMON:表示相同段名和组合类型也是COMMON的段是覆盖的,共享最大的段存储区。 STACK:产生一个堆栈段,并把相同段名的段连接成一个连续段,系统自动设置SS为段的起始地址并初始化SP值。 AT 表达式:表示本段的起始单元可定位在表达式所示“节”的边界上。 MEMORY:表示本段的存储地址在所有段的最高处。 类别名:在链接处理时,LINK把类别相同的段存放在连续的存储区内。;2、段寻址伪指令 语句格式: ASSUME 段寄存器名:段名,段寄存器名:段名,… 功能:指定当前段,及当前段的段寄存器名。 取消 ASSUME 设置: ASSUME [段寄存器名] :NOTHING。;3、段寄存器的装入 (1)DS、ES装入:通过程序装入: MOV AX,DATA_DS MOV DS,AX (2)SS装入(SS、SP同时装入): 段定义伪指令组合类型用“STACK”时,系统自动装入。 程序装入,同(1)。 (3)CS装入:(CS、IP同时装入) 系统用结束伪指令装入。格式 :END 起始地址 通过分支指令修改时装入。如CALL、JMP等。;4.2.3、程序的结束 使用 END ;汇编语言的数据种类: 常量 变量 标号;变量:实际为内存单元的数据,并为该存储单元取 名字。其数据可以改变。 变量的属性: 1、段属性:变量所在段址。 2、偏移地址属性:所在段的偏移地址。 3、类型属性:变量所占的字节数。 ;变量名 DB/DW/DD 表达式,表达式,… 功能: 为数据分配存储单元,并用变量名作为该 存储器的名称。 例:数值变量定义 DATA_BYTE DB 10,4,10H DATA_WORD DW 100,100H,-5 DATA_DW DD 3*20,0FFFDH T1 DB ‘HELLO’;变量定义伪指令 DB---字符串的定义; 变量定义伪指令 DB---?、DUP ;常量:表示一个固定的数值。 分类: 1、常数:指由2、8、10、16进制表达的数值。 默认进制的设置:RADIX n 2、字符串:使用单引号或双引号括起来的单个 或多个字符,其数值为其所对应的 ASCII码。 例:’D’、‘ASDF’ ;符号定义作用:用符号表示常数或表达式。 等值语句 语句格式:符号 EQU 表达式 功能:将EQU右边表达式的值赋给符号。 注意: 表达式可以为常数、数值表达式、地址表达式、变量或标号。 EQU语句不产生目标代码,不占存储单元。 在同一源程序中,同一符号不能用EQU重新定义。 表达式中如果有变量或标号的表达式,则在语句前先给它们定义;常量--符号定义伪指令‘=’
显示全部
相似文档