- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1几个几相加
第5章 汇编语言 5.1 MASM汇编语言基础 5.1.1汇编语言的基本概念 1.主要特点 优点:汇编语言程序与处理器指令系统密切相关 程序员可直接、有效的控制系统硬件 形成的可执行文件运行速度快、占用主存容量少 缺点:与处理器密切相关 需要熟悉计算机硬件系统、考虑许多细节 编写繁琐,调试、维护、交流和移植困难 2.汇编语言的应用场合 程序要具有较快的执行时间或只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效地控制硬件 大型软件需要提高性能、优化处理的部分 没有合适的高级语言或只能采用汇编语言的时候 分析具体系统尤其是该系统的底层软件、加密解密软件、分析和防治计算机病毒等 5.1.2汇编语言的语句格式 源程序文件保存为扩展名为asm,文件名不能超过8个ASCII码字符,源程序所使用的指令包括硬指令和伪指令 伪指令:用来为汇编程序提供某些信息,让汇编程序在汇编过程中执行某些特定的功能。用到标号,但标号后面不带冒号,在汇编过程中不形成任何代码 如:A1 DB 12H 1.直接寻址 操作数的地址由16位偏移地址直接包含在指令中,它与操作码一起在 代码段区域中,但操作数一般在数据段区域中,它的地址为数据段寄 存器DS加上它的16位地址偏移量。 指令中的16位地址偏移量是低位字节在前,高位字节在后。 这种寻址方法,是以数据段寄存器的地址为基础,可在多达64K字节 的范围内寻找操作数。 可以用符号名地址进行直接寻址 例:设DS=3000H,(32000H)=0AABBH, (DAT)=2730H MOV AX,[2000H] DAT DW 2730H N EQU 10 MOV CX,N MOV AL,DAT 例:在内存1000H:100H开始,存放了2个字节数据,计算其累加和 MOV AX,1000H MOV DS,AX MOV AL,0 ADD AL,[0100H] ADD AL,[0101H] 2.寄存器间接寻址 在这种寻址方式中,操作数在存储器中,但是,操作数的地址的16位偏移量包含在以下四个寄存器SI、DI、BP、BX之一中。这又可分成两种情况: 1、 BX、SI、DI间址时以DS为默认段地址; 例:MOV AX,[SI] 2、BP间址时以SS为默认段地址。 3.基址寻址 基址寻址的操作数在存储器中,操作数的有效地址由基址寄存器(BX或BP)的内容与指令中给定的位移量相加得到 基址寄存器为BX时,段寄存器使用DS;基址寄存器为BP时,段寄存器使用SS 例如:设DS=5000H,BX=3000H MOV AX,[BX] ;将53000H和53001H两单元的内容送AX中 例:MOV AX,[BX+value] 4.变址寻址 变址寻址的操作数在存储器中,操作数的有效地址由变址寄存器(SI或DI)的内容与指令中给定的位移量相加得到 变址寻址通常用于对数组元素进行操作,后面讲的串操作指令要求用固定的变址寄存器对操作数进行寻址 5.基址变址寻址 基址变址寻址的操作数在存储器中,操作数的有效地址由基址寄存器(BX或BP)的内容加上变址寄存器(SI或DI)的内容再加上指令中给定的位移量 不允许BX、BP同时出现在同一个地址表达式中,也不允许SI、DI同时出现在同一个地址表达式中 例如 MOV AX,[BX+SI+0050] MOV AX,DAT[BX][SI] 5.3指令集 8086/8088的指令系统大约有100多条基本指令,按功能划分为以下6类: 数据传送类 算术运算类 位处理指令(逻辑运算与移位指令) 字符串处理 控制转移指令(程序控制) 处理器控制指令 5.3.1数据传送指令 1.数据传送MOV指令 可以实现CPU内部寄存器之间的数据传送,寄存器和内存之间的数据传送,还可以把一个立即数送给CPU的内部寄存器或者内存单元 例如: MOV AL,BL ;BL中的8位数据送AL MOV ES,DX MOV AX,[BX] ;BX,和BX+1两个内存单元的内容送AX MOV [DI],AX MOV CX, [1000] MOV BX,40 MOV WORD PTR [SI],6070H 几点注意 1.MOV可传送8位和16位数据,具体决定于指令中涉及的寄存器,也决定立即数的形式 2.即含源操作数,又含目的操作数,两者之中至少有一个是用寄存器指出的 3.不能在两个内存之间直接传送数据,如果要把地址为AREA1的存储单元的内容传送至同一段内的地址为AREA2的存储单元去,MOV指令不能直接完成 如:MO
文档评论(0)