微机原理课件chapter3qsq.ppt

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

以上例子说明: 汇编语言指令可手工汇编成机器码. 即使是同一种指令,寻址方式和操作数的不同,机器码的长度也不同。编程时应选择合理算法、数据结构、寻址方式等节省MEM。 执行时间:指令的指令时间包括取指、译码和执行的时间,跟该指令的机器码的长短没有直接关系。 寻址方式总结 操作数的分类 立即数操作数: 注1:立即数只能作为源操作数,不能作为目标操作数。 注2:不能用一条指令简单地将立即数传送到段寄存器。 寄存器操作数: 注3:有些指令没有指定使用的寄存器,但实际上隐含这特定的寄存器操作数。 存储器操作数: 注4:不允许源操作数和目标操作数同时为存储器操作数。 注5:存储器操作数的物理地址的计算是将段基地址左移四位加上有效地址EA(偏移地址)得到的。但是段寄存器和有效地址的配对是有规定的。 注6:执行速度:寄存器操作数 > 立即数操作数> 存储器操作数 3.2 8086/8088指令系统 CMP A,B (1)若任意两个数 ZF=0 A<>B (JNZ 不等转移) ZF=1 A=B (JZ 相等转移) (2)若两个数都是无符号数 CF=0 A≥B (JNC) CF=1 A<B (JC) (3)若两个数都是带符号数正数 SF=0 A≥B (JNS) SF=1 A<B (JS) (4)若两个数是任意带符号数 SF⊕OF=0 A≥B (JNL) SF⊕OF=1 A<B (JL) 例:比较AX和BX寄存器中两个带符号数的关系,如果相等则RESULT=0;如果(AX)>(BX),则RESULT=1;如果(AX) <(BX), 则RESULT=-1. CMP AX,BX JZ EQUAL ;= JL LESS_THAN ;< MOV RESULT,01H ;> JMP STOP EQUAL:MOV RESULT,00H JMP STOP LESS_THAN: MOV RESULT,FFH STOP: HLT 例:用以下程序来完成X*10. SAL AL,1 ; X*2 MOV BL,AL ;暂存 SAL AL,1 ; X*4 SAL AL,1 ; X*8 ADD AL,BL ; X*10 例:将一个四字节数整个左移一位。 SAL FIRST_WORD,1 RCL SECOND_WORD,1 串传送指令示例 MOV SI, OFFSET S1 MOV DI, OFFSET S2 MOV CX, 18 ;CLD AGAIN:MOVS S2,S1 DEC CX JNZ AGAIN …… S1 DB “This is a string!$” S2 DB 18 DUP(0) 对于LODS指令,一般采用重复前缀的较为少见 例:将0700H单元开始的5个字节内容逐一取出,放在累加器中处理后再送回原单元 CLD ; DF=0,增量方向 MOV SI, 0700H MOV CX, 5 LI: LODSB ;取一个字节到AL,且SI自动+1 PUSH CX …… ;保留计数值后进行相应处理 POP CX DEC CX MOV [SI-1], AL ;送回处理结果 JNZ LI ;如CX未结束,则继续循环 例:MOV SI, 1000H

文档评论(0)

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

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

1亿VIP精品文档

相关文档