徽理工大骨计算机科学与技术系歌兆《汇编语言》 4)使用类型 USE16使用16位寻址方式段长≤64K USE32使用32位寻址方式段长≤4G 5)类别 在引号中给出连接时组成的段组的类型名。在连 接后形成的装入模块中,可使相同类别的段位置靠 在一起
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 4) 使用类型 USE16 使用16位寻址方式 段长≤64K USE32 使用32位寻址方式 段长≤4G 5) 类别 在引号中给出连接时组成的段组的类型名。在连 接后形成的装入模块中,可使相同类别的段位置靠 在一起
徽理工大骨计算机科学与技术系歌兆《汇编语言》 ◆假定伪指令 ASSUME 格式: ASSUMI段寄存器:段名[,段寄存器:段名] 功能:建立段寄存器与段之间的对应关系。该伪指令一般 出现在代码段中。 DATAL SEGMENT A DB1,2,3 DATAl ENDS CODE SEGMENT ASSUME DS: DATAl, CS: CODE 其中段寄存器名必须是CS,DS,ES和SS(对于386及后继机 型还有FS和GS中的一个。段名必须是由 SEGMENT定义的段 中的段名
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 ◆假定伪指令ASSUME 格式:ASSUME 段寄存器:段名 [,段寄存器:段名] 功能:建立段寄存器与段之间的对应关系。该伪指令一般 出现在代码段中。 DATA1 SEGMENT A DB 1,2,3 DATA1 ENDS CODE SEGMENT ASSUME DS:DATA1,CS:CODE ┆ 其中段寄存器名必须是CS ,DS,ES 和SS(对于386 及后继机 型还有FS 和GS)中的一个。段名必须是由SEGMENT定义的段 中的段名
安理工骨计算机科学与技术系李兆 《汇编语言》 ◆段定义伪操作:完整的段定义格式举例 data segment;定义数据段 data ends extra segment;定义附加段 extra ends code segment;定义代码段 assume cs: code, ds: data, es: extra start: mov ax. data moy ds,ax;段地址→段寄存器 code ends end start
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 ◆ 段定义伪操作: 完整的段定义格式举例 data segment ; 定义数据段 … data ends ;---------------------------------------- extra segment ; 定义附加段 … extra ends ;---------------------------------------- code segment ; 定义代码段 assume cs:code, ds:data, es:extra start: mov ax, data mov ds, ax ; 段地址 → 段寄存器 … code ends end start 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》
安假望工大骨计算机科学与技术系李兆《汇编语言》 code segment main proc far code segment main proc far assume assume ■■■■■■ start: start push ds mov ax. 0 mov ax, 4c00h push ax int 21h main enap code ends main end p end start code ends end start
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 …… code segment main proc far assume …… start: push ds mov ax, 0 push ax …… ret main endp code ends end start …… code segment main proc far assume …… start: …… …… mov ax,4c00h int 21h main endp code ends end start 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》
徽理工大骨计算机科学与技术系歌兆《汇编语言》 例:一个完整的段定义格式 STACK SEGMENT STACK ;定义堆栈段 STACK ;分配堆栈段的大小 STACK ENDS DATA SEGMENT ;定义数据段 ;定义数据 DATA ENDS CODE SEGMENT‘CODE ;定义代码段 ASSUME CS: CODE, DS: DATA, SS: STACK START: MOVAX, DATA ;程序开始 MOV DS, AX ;程序代码 MOVAX, 4C00H ;程序终止,返回DOS INT2IH CODE ENDS 代码段结束
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》 例:一个完整的段定义格式 STACK SEGMENT STACK ; 定义堆栈段STACK ... ; 分配堆栈段的大小 STACK ENDS DATA SEGMENT ; 定义数据段 ... ; 定义数据 DATA ENDS CODE SEGMENT ‘CODE’ ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ; 程序开始 MOV DS,AX ... ; 程序代码 MOV AX,4C00H ; 程序终止,返回DOS INT 21H CODE ENDS ;代码段结束 ... ;子程序代码 END START ;汇编结束 例:一个完整的段定义格式