3_汇编语言基础重点.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言 lybliu@, QQ (学校主页?教学平台) 第3章 汇编语言基础 3.1 汇编语言的基本元素 3.2 示例:整数加减法 3.3 汇编、链接和运行程序 3.4 定义数据 3.5 符号常量 3.1 汇编语言的基本元素 先看一个简单的程序: Main proc mov eax,5 add eax,6 call writeInt exit Main endp 3.1.2 整数常量 ◆由可选的符号开头,后跟一个或多个数字以及一个表示数的进制的后缀: [{+|-}]数字[进制] ◆进制后缀可能为(不区分大小写): h 十六进制(以字母开头的话,前需加0) q/o 八进制 b 二进制 d 十进制(如不跟进制后缀,黙认为十进制) r 编码实数 ◆一些常量举例 26 十进制 26d 十进制 110b 二进制 42q 八进制 1ah 十六进制 0a3h 十六进制 3.1.3 整数常量表达式 包含整数常量及算术运算符的数学表达式 计算结果必须能用32位整数存储 计算有优先级(建议用括号表明优先级) 支持的运算符(Operator)有 () + - * / mod 3.1.4 实数常量(略) 3.1.5 字符常量 以单引号或双引号括起来的单个字符 存储为对应字符的ASCII码 3.1.5 字符串常量 以单引号或双引号括起的一串字符 其存储为依次存储各字符的ASCII码 嵌套引号的表示方法: 3.1.6 保留字 汇编语言有保留字,它们只能用于特定场合 主要的保留字分类 指令的助记符,如mov, add 伪指令,用于告诉汇编器如何汇编程序的指令 属性,表示变量和操作数的大小和使用信息,如byte 运算符(Operator), 在常量表达式中使用 预定义符号,汇编器内部使用的 书上的附录A列出了全部保留字 3.1.7 标识符 是程序员命名的符号,用于标识变量、常量、过程名或代码标号。 标识符长度1~247个字符 默认时大小写不敏感 第一个字符可以是字母,_,@,?,$,不能是数字,后续字符可以含数字 不能与保留字同名 汇编器内部使用了一些@打头的符号,自定义时尽量不用@打头 3.1.8 伪指令 由汇编器识别并在编译时执行相应动作的命令。 伪指令可用于定义变量、过程、宏、定义段等 每个汇编器都有一套自己的伪指令,不同汇编器可能有较大差异。 例如: DWORD是用于定义双字变量的伪指令, .code是用于标识代码段(segment), .stack用于表示栈段(segment) ,在其后还可以指定栈的大小。 3.1.9 指令 汇编语言中的指令是一条汇编语句 在程序被汇编后变成可执行的机器指令 一条汇编指令包括4个部分: 标号(可选) 助记符 操作数 注释(可选) 标号:数据标号、代码标号 是充当指令或数据位置标记的标识符,放在指令前的标号表示该条指令所在的起始地址;放在变量前的标号表示这个变量所在的起始地址。 数据标号 形如 count db 100 ,此意为定义一个标号名叫count的字节变量,初值100 汇编器会为每个标号分配一个地址。 允许在一个标号后定义多个数据项,如 Array dword 1024,2048 dword 4096,8192 这个例子中,表示定义了四个双字,连续依次存放,第二行前边没有标号,也是允许的。 代码标号:放在指令前,标号名后要跟冒号 形式如 Target: mov ax,bx jmp target 代码标号表示当前指令的地址 标号可以与指令在同一行,也可以独立成行,如果独立成行,其地址为标号后第一条指令的地址 指令助记符 一般是一个单词缩写,如mov,sub,jmp等 操作数 一条汇编指令,可能包含0~3个操作数 操作数可能是寄存器、内存操作数、常量、I/O端口 -在有两个操作数的指令中,第一个操作数称为目的操作数,第二个操作数称为源操作数。指令通常会修改目的操作数的内容。 指令的例子 3.2 示例:整数加减法 这个程序需要作者提供的相关头文件和库文件。大家学习时也可以不使用他的库。他的库主要是用于显示输出结果,先期学习时可以不显示输出,而使用调试器查看结果。 这段程序中出现的伪指令: Title, include , proc , endp, end 指令: mov , add , call 宏: exit, 是一个宏(即宏替换,与C语言中的宏类似) Title Simple Add .386 .model flat,

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档