ASM04 汇编语言程序格式20751302.ppt
文本预览下载声明
* 2. 简化段定义伪操作 ⑴MODEL 伪操作 .MODEL 内存模式 [, 语言类型] [, 堆栈选项] ; 用来指出存储模式 内存模式: Tiny Small Medium Compact Large Huge Flat 语言类型:C BASIC FORTRAN PASCAL SYSCALL STDCALL 堆栈类型:NEARSTACK 或 FARSTACK ⑵基本形式 .CODE [名] .DATA .DATA? .FARDATA [名] .FARDATA? [名] .CONST .STACK [尺寸] 缺省为1KB 4.3.2 段定义伪操作 * rep movsb ;串传送 mov si, 0 ;显示 mov bx, offset target again: mov dl, [bx+si] mov ah, 2 int 21h inc si cmp si, 80 jb again .exit 0end ⑶预定义符号 .model small, stdcall.stack.data source db 33h,34h,35h,36h ;在数据区定义4个字符数据 target db 80 dup( ) ;分配复制数据空间4×20=80.code.startup mov ax,ds mov es, ax cld mov si, offset source mov di, offset target mov cx, 80 4.3.2 段定义伪操作 * 4.3.3 程序开始和结束伪操作 ⒈指定程序名字 NAME module_name TITLE text ⒉源程序结束: END 地址 功能: 表示汇编语言源程序到此结束,对END之后的语句不再进行汇编。可选的地址指出程序执行的起始点,通常是标号或过程名。 若程序包含多个源文件,则每个源文件的最后必须有一条END语句,但只有主模块文件可以指出执行的起始地址 * ‘A’ ‘B’ MESS1 ‘B’ ‘A’ MESS2 4.3.4数据定义及存储器分配伪操作 ⒈格式: [变量] 类型助记符 操作数 [ , 操作数 , … ] [ ; 注释] 类型助记符:DB, DW, DD, DF, DQ, DT, BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4, REAL8, REAL10. 操作数可以是常数、用 EQU 或 = 定义的符号常量、表达式、?和DUP子句等。其中,?表示只保留内存空间,未定义初始值。 DUP子句的格式为: 重复次数 DUP (操作数,…,操作数) DATA_WORD DW 100, 100H DATA_BYTE DB 100 DUP (?) MESS1 DB ‘AB’ MESS2 DW ‘AB’ * 01 02 34 12 78 56 OPER1 OPER2 ⒉例: OPER1 DB ?, ? OPER2 DW ?, ? … MOV OPER1, 0 ; 字节指令 MOV OPER2, 0 ; 字指令 ⒊例: OPER1 DB 1, 2 OPER2 DW 1234H, 5678H … MOV AX, OPER1+1 × MOV AL, OPER2 × 类型不匹配 MOV AX, WORD PTR OPER1+1 MOV AL, BYTE PTR OPER2 (AX)=3402H (AL)=34H 4.3.4数据定义及存储器分配伪操作 * ⒋说明 (1)变量可以定义在任何段(包括代码段),但一般定义在数据段。 (2)用DW/DD/DQ/DF/DT定义的数据在内存按“低字节在低地址”的方式存放。例如: S
显示全部