微机原理及单片机应用技术知识第3章 汇编语言与汇编程序设计基础.ppt

微机原理及单片机应用技术知识第3章 汇编语言与汇编程序设计基础.ppt

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

微机原理、汇编与接口技术;;操作助记符 [目的操作数][,源操作数][;注释] 操作助记符, 它以符号形式给出该指令进行什么操作,如数据传送MOV?加ADD?减SUB和逻辑与AND等? 操作数可以是操作数本身,可以是寄存器,也可以是地址表达式? 有的操作数隐含在助记符中(形式上无操作数),有的只有1个操作数,有的有2个操作数,有的有3个操作数,故符号指令的表示中使用了可选择符号[ ]。;指令格式: ;寻址方式:指令中如何求出操作数有效地址的方法? (1)立即寻址 (2)寄存器寻址 (3)直接寻址 (4)寄存器间接寻址 (5)寄存器相对寻址 (6)基址变址寻址 (7)相对基址变址寻址;(1)立即寻址;(2)寄存器寻址;(3)直接寻址;……;也可以传送内存中其他段的数据,在相应的偏移地址前加段超越符“ :”。;(4)寄存器间接寻址;……;MOV AX, ES:[BX];(5)寄存器相对寻址;用BP寻址,段基址默认为堆栈段SS,其余3个的段基址默认为数据段DS,同时指令允许段超越。;(6)基址加变址寻址;变址寄存器只有2个:SI和DI。允许段超越。;(7)相对基址加变址寻址;变址寄存器只有2个:SI和DI。允许段超越。;12H;3.3 8086/8088指令系统;3.3.1 数据传送指令;MOV BL, AX MOV 100, CX MOV [SI], AX MOV CS, AX MOV [SI], [DI] MOV BX, 2[DI] MOV AX, CS MOV SS, 2400H MOV AX,[BP+4];堆栈操作指令:;MOV AX, 1234H PUSH AX;只能对16位数进行操作,一次压入弹出两个字节;MOV AX, 1000H PUSH AX MOV BX, AX PUSH [BX] PUSH [1000H] POP [1002H] POP AX POP BX;交换指令; 累加器专用指令 (只与AX或AL有关,与AH无关);IN AL, 40H ;IN, OUT只能对AL, AX操作,若传送的数据为16位,则外口地址只能取偶数。;表格查找指令(换码指令) XLAT;执行该指令前,应该先建立一张表格,该表的最大容量为256字节。;例: 从5号端口输入十进制数,转换为7段码后输出到20号端口。;例:向端口40H送字符35。;2. 地址传送指令;取内存中的数 LDS ;取内存中的数 LES ;12H;3. 标志传送指令;标志寄存器入栈命令: PUSHF 将栈内内容进入标志寄存器: POPF: 只有这个命令可以改变TF的内容。;3.3.2 算术运算指令;当相同符号数相加但结果变号时,产生溢出标志。;当无符号数运算时,若CF=1,则超界。 当有符号数运算时,若OF=1??则溢出,结果错误 若运算结果为0,则ZF=1 若运算结果为负数,则SF=1,即SF与最高位一致 若运算结果中低8位有偶数个1,则PF=1 若运算过程中低8位的位3向位4有进位,则AF=1;1. 加减法指令一览表;加法指令 1) 不带进位的加法;设 AX=C544H, 执行 ADD AH, AL后, CF , OF?;2) 带进位的加法;例:两个四字节无符号数相加,这两个数分别放在以2000H和3000H开始的存储单元内,要求运算后得到的结果放在2000H开始的单元内。;3) 增量指令;减法指令 1) 不带借位的减法;MOV AX, 5049H SUB AX, 0E2D7H;2) 带借位的减法;3) 减量指令;4) 求补指令;5) 比较指令;CMP AX, BX;将字节扩展成字的指令:CBW;3. 乘法指令;无符号数乘法指令;2) 有符号数乘法指令;乘法运算时,结果影响CF和OF,AF, PF, SF, ZF标志位无意义。;例:;4. 除法指令;无符号数除法指令;2) 有符号数除法指令;注意: 除法运算所有的标志位都没有意义; 用IDIV指令时,如果是双字除以一个字,则商的范围为-32768~32767,如果是一个字除以一个字节,则商的范围为-128~127。如果超出这个范围,会作为除数为0来处理,产生0号中断; 8086系统规定余数的符号和被除数相同; 当8位数除以8位数,16位数除以16位数时,必须对被除数进行扩展。;5. BCD码运算指令;BCD码加法十进制调整指令;7+5=12 用组合的BCD码表示运算过程:;9+9=18 用组合的BCD码表示运算过程:;2)压缩BCD码运算调整指令 DAA;MOV AX, 1234H MOV BX, 5678H ADD AL, BL DAA MOV CL, AL MOV

文档评论(0)

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

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

1亿VIP精品文档

相关文档