ASM04 汇编语言程序格式概要1.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ASM04 汇编语言程序格式概要1

* 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 0 end ⑶预定义符号 .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

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档