DOS Winws汇编语言程序设计教程课件 第二章1.ppt

DOS Winws汇编语言程序设计教程课件 第二章1.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令操作数的表达(1) r8——任意一个8位通用寄存器 AH AL BH BL CH CL DH DL r16——任意一个16位通用寄存器 AX BX CX DX SI DI BP SP reg——代表r8或r16 seg——段寄存器 CS/DS/ES/SS * 指令操作数的表达(2) m8——一个8位存储器操作数单元(所有主存寻址方式) m16——一个16位存储器操作数单元(所有主存寻址方式) mem——代表m8或m16 * 指令操作数的表达(3) i8——一个8位立即数 i16——一个16位立即数 imm——代表i8或i16 dest——目的操作数 src——源操作数 * 逻辑段分配 * 立即数寻址的功能 * 立即数寻址的执行 * 寄存器寻址的功能 * 寄存器寻址的执行 * 直接寻址的功能 * 直接寻址的执行 * 寄存器间接寻址的功能 * 寄存器间接寻址的执行 * 寄存器相对寻址的功能 * 寄存器相对寻址的执行 * 基址变址寻址的功能 * 基址变址寻址的执行 * 相对基址变址寻址的功能 * 相对基址变址寻址的执行 * 学习要求 ● 掌握16位指令系统中常用指令的使用。 ● 掌握源程序中常用的伪指令。 ● 掌握宏汇编源程序的结构及其编程方法。 ● 掌握宏汇编语言上机调试过程。 * 2.1 16位汇编程序设计概述 在DOS下用汇编语言开发程序的工具是Masm和Tasm。Masm常用的有Masm611和Masm614两个版本,Tasm是Borland公司提供的工具。 用Masm.exe来将源程序生成目标文件。ML.exe既可以产生目标文件,也可以产生可执行文件。调试可执行文件用Debug.exe或CV.exe。 * 汇编语言程序的特点 编程的第一步是编写源程序。 用记事本等一切可以以纯文本方式编辑保存文件的工具进行。文件必须保存为扩展名为asm的文件,且文件名不能超过8个ASCII码字符。 * 汇编语言程序的特点 源程序中要使用指令,指令是最小的代码单元。指令分为两种,一种叫硬指令,另一种叫伪指令。 硬指令是机器事实上存在的指令 例如: MOV AX,1234 在源程序中写下这条指令,生成可执行文件后,反汇编仍然存在这条指令。 * 汇编语言程序的特点 伪指令是告诉编译器的一些说明性语句,编译器承认,而CPU中无此指令。 例如: X1 DW 0 这是一条用伪指令DW定义字变量的语句,编译器会将它在数据段中产生一个字的空间且初始化为0。程序中并没有X1这个变量,其它指令操作该变量都会被编译成从X1的地址读写数据。 * 指令寻址方式 从8086的机器代码格式入手,论述: 立即数寻址方式 寄存器寻址方式 存储器寻址方式 进而熟悉8086汇编语言指令格式,尤其是其中操作数的表达方法;为展开8086指令系统做好准备 * 指令的组成 指令由操作码和操作数两部分组成 操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分 操作数是指令执行的参与者,即各种操作的对象 有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数 操作码 操作数 * 指令的操作码和操作数 每种指令的操作码: 用一个唯一的助记符表示(指令功能的英文缩写) 对应着机器指令的一个二进制编码 指令中的操作数: 可以是一个具体的数值 可以是存放数据的寄存器 或指明数据在主存位置的存储器地址 * 寻址方式 指令系统设计了多种操作数的来源 寻找操作数的过程就是操作数的寻址 操作数采取哪一种寻址方式,会影响机器运行的速度和效率 * 标准机器代码示例 mov ax,[BP+0] ;机器代码是 8B 46 00 前一个字节8B是操作码(含w=1表示字操作) 中间一个字节46(01 000 110)是 “mod reg r/m”字节 reg=000表示目的操作数为AX mod=01和r/m=110表示源操作数为[BP+D8] 最后一个字节就是8位位移量〔D8=〕00 1/2字节 0/1字节 0/1/2字节 0/1/2字节 操作码 mod reg r/m 位移量 立即数 * 其它机器代码形式 mov al,05 ;机器代码是B0 05 前一个字节B0是操作码(含一个操作数AL),后一个字节05是立即数 mov ax,0102H ;机器代码是B8 02 01 前一个字节B8是操作码(含一个操作数AX),后两个字节02 01是16位立即数(低字节02在低地址) 操作码 操作数 * 指令的助记符格式 操作码 操作数1,操作数2 ;注释 操作数2,称为源操作数 src,它表示参与指令操作的一个对象 操作数1,称为目的操作数 dest,它不仅可以作为指令操作

文档评论(0)

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

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

1亿VIP精品文档

相关文档