微型计算机原理及接口_chap03_zengchen.ppt

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

微机原理及接口技术 第3章 Intel处理器指令系统及汇编语言;操作数的寻址方式 立即寻址 MOV AX,im 直接寻址 MOV AX,DS:[2000H] 寄存器寻址 MOV DS,AX 寄存器间接寻址 MOV AX,[SI] 寄存器相对寻址 MOV AX,DISP[SI] 基址、变址寻址 MOV AX,[BX][SI] 基址、变址、相对寻址 MOV AX,DISP[BX][SI] 隐含寻址 MUL OPRD 转移地址的寻址方式;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;操作数的寻址方式(已讲解V) 转移地址的寻址方式(也就是操作码的寻址) 段内相对寻址 JMP DISP1 段内间接寻址 JMP CX 段间直接寻址 JMP FAR PRT ADD1 段间间接寻址 JMP DWORD PRT [BP][DI] ;数据传送指令 算数运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 输入、输出指令;一、 数据传送指令 数据、交换:MOV、XCHG 地址:LEA、LDS、LES 堆栈:PUSH、POP 标志寄存器:LAHF、SAHF、PUSHF、POPF 字节、字转换:CBW、CWD;*;*;*;*;*;*;*;*;LDS指令,LES指令;*;*;*;*;*;*;*;*;*;*;*;*;*;*;二、 算数运算指令 加法:ADD、ADC、INC 减法:SUB、SBB、DEC、NEG、CMP 乘法:MUL(无符号) 、IMUL(带符号) 除法:DIV(无符号) 、IDIV(带符号) 调整:AAA、AAS、AAD、AAM、DAA、DAS;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;逻辑运算和移位指令 逻辑:NOT、AND、TEST、OR、XOR 移位:SAL/SHL、SAR、SHR 循环移位:ROL、ROR、RCL、RCR;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;*;特点: 不丢失任何数据位。 例1: mov al,40h rol al,1 CF=0 rol al,1 CF=1 rol al,1 CF=0 例2:将一个字节的低4位与高4位进行交换 mov al,26h rol al,4 ;AL = 62h;例: mov al,01h ror al,1 CF=1 ror al,1 CF=0;RCL指令:带进位的循环左移 RCR指令:带进位的循环右移 ;串操作指令 MOVS、MOVSB、MOVSW CMPS、CMPSB、CMPSW SCAS、SCASB、SCASW LODS、LODSB、LODSW STOS、STOSB、STOSW REP REPE、REPNE;5组处理字节、字和双字数组的指令,称为基本字符串指令,但用法并不限于处理字符数组。;在保护模式程序中,ESI被作为偏移自动地在DS指定的段中寻址;EDI自动地在ES指定的段中寻址。DS和ES总是被设置为同样的值并且无法改变它们。 在实地址模式下,字符串操作指令使用SI和DI寄存器寻址内存。 SI是DS段中的偏移。 DI是ES段中的偏移。 实地址模式下ES和DS经常由ASM程序员改变。 通常在main过程的开始将ES和DS设为同样的段值:;使用重复前缀 字符串操作指令每次只能处理一个内存值。 通过增加一个重复前缀,字符串指令就会使用ECX作为计数器进行重复 —— 实现用一条指令处理整个数组。 可以使用的重复前缀:;使用重复前缀 例: 方向标志:简单字符串指令使用方向标志来决定ESI和EDI是自动增加还是自动减少。 方向标志位 DF=0:ESI、EDI 自动增加; 方向标志位 DF=1:ESI、EDI 自动减少。 方向标志可以通过CLD和STD指令改变: CLD ; 清除方向标志,即:使DF=0 STD ; 设置方向标志,即:使DF=1;*;*;*;*;*;从ESI指向的内存位置向AL/AX/EAX中装入一个值,同时ESI的值根据方向标志增加或减少。 一般不与REP前缀联合使用。 假设DF=0,则LODSB可替代下面两条指令: 【例】数组乘法: 将双字数组的每个元素同一个常量相乘。;5. 串存储指令;*;*; 例:将string1的每个字节初始化为0FFh。;*;程序控制指令 无条件转移、调用、返回:JMP、CALL、RET 条件转移 JO、JNO、JS、JNS、JC、JNC、JE、JZ、JNE、JNZ、JP、JPE、JNP、JPO JA、JNBE、JAE、JNB、JB、J

文档评论(0)

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

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

1亿VIP精品文档

相关文档