- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第5讲第3章-汇编语言基础31_32
第3章 汇编语言基础 补充. 程序设计语言概述 3.1 源程序结构 3.2 数据表示 第3章 汇编语言基础 3.1 源程序结构 3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法 3.2 数据表示 3.2.1 数制 3.2.2 编码 3.2.3 常量表达 3.3 变量应用 3.3.1 变量定义 3.2.2 变量属性 补充. 程序设计语言概述(补1) 计算机程序设计语言分类 机器语言 汇编语言 高级语言 从源程序获得目标程序的过程 汇编语言程序的上机与处理过程(补1) (补1) ①用编辑程序建立ASM程序 ②用汇编程序把ASM程序转换成OBJ程序 ③用连接程序把OBJ程序转换成EXE程序 ④用调试程序调试程序 ⑤用DOS命令直接键入程序名执行 汇编程序的分类(补1) 基本汇编 ASM 宏汇编 MASM(有各种版本,还支持宏操作、条件汇编、协处理命令等) TASM(Turbo Assembler)性能同MASM,速度更快 其它 3.1 源程序结构 3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法 3.1.1 语句格式 语句组成 一个语句常占一行,不超过132个字符 种类 执行性语句 指令、硬指令 说明性语句 伪指令 宏指令语句(不讲) 指令与伪指令的比较 指令 可执行语句 使CPU产生动作 产生目标代码 与CPU类型有关 与汇编程序的版本无关 伪指令 说明性语句,控制汇编方式 不产生CPU动作 不产生目标代码 与CPU类型无关 与汇编程序的版本有关 格式 标识符、保留字 保留字(Reserved Word),汇编程序已用标识符 硬指令助记符,如:MOV、ADD 伪指令助记符,如:DB、EQU 操作符,如:OFFSET、PTR 寄存器名,如:AX、CS 预定义符号,如:@data 标识符(Identifier) 一般最多由31个字母、数字及规定的特殊符号(如 _、$、?、@)组成,不能以数字开头 不区分字母大小写 标识符的定义是唯一的,不能是保留字 具有段基址、偏移量、类型三种属性 例:下列那些标识符有效?那些无效? NUM+1: ___ START: ___ MY_CODE: ___ 4LOOP: ___ NUM@_1: ___ A/B: ___ Intel Architecture Software Developer’s ManualVolume 2: Instruction Set Reference 指令要解决的两个问题 进行什么操作 操作符 操作数和操作结果放在何处 寻址方式 Intel 指令格式 8086的机器代码格式 例1:mov ax,[BP+0] 机器代码是 8B 46 00 8B:操作码(含w=1表示字操作) 46(01 000 110): “mod reg r/m”字节 mod=01和r/m=110表示源操作数为[BP+disp8] reg=000表示目的操作数为AX 最后一个字节:8位位移量(disp8 = )00 例2 (1)mov al,05 ;机器代码是 B0 05 B0 :操作码(含一个操作数AL) 05 :立即数 (2)mov ax,0102H ;机器代码是 B8 02 01 B8:操作码(含一个操作数AX) 02 01:16位立即数(低字节02在低地址) 3.1.2 程序格式 逻辑段基本定义格式 DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV AH,4CH INT 21H CODES ENDS END START 逻辑段简化定义格式 .model small .486 .data ;此处输入数据段代码 .stack ;此处输入堆栈段代码 .code .startup ;此处输入代码段代码 .exit end 解析——简化段定义源程序格式(1) ;example.asm .model small ;定义程序的存储模式 .486 ;说明使用的80x86微处理器指令 .stack ;定义堆栈段 .data ;定义数据段 …… ;数据定义(数据待填) .code ;定义代码段 .startup ;程序执行起始 …… ;主程序(指令待填) .exit ;程
文档评论(0)