- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
31指令系统-数据传送ok,指令系统,计算机指令系统,8086指令系统,计算机指令系统是指,精简指令系统,cpu的指令系统又称为,单片机指令系统,cpu的指令系统,复杂指令系统计算机
December 12, 1999 MatrixOne, Inc Confidential 共同的规律 大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。 语句格式: [标号:] 操作符 OPD, OPS [;注释] 算术运算和位操作类指令的部分单操作数指令有相同的语句格式和操作规定。 语句格式: [标号:] 操作符 OPD [;注释] 数据传送指令 数据传送指令,能够实现内部寄存器之间的数据传送,内部寄存器与存储器之间的数据传送, MOV指令 符号扩展和零扩展传送指令 XCHG指令 XLAT和XLATB指令 地址传送指令 堆栈操作指令 输入输出指令 MOV指令 MOV D,S ;(D) ←(S) D表示目的操作数, S表示源操作数, 功能: 将源操作数传送入目的地址,源地址内容不变 这些操作数可以是立即数、寄存器或存储器,传送的数可以是字节、字。 寄存器之间传送 MOV AL,AH ;8位寄存器之间传送 MOV AX,BX ;16位寄存器之间传送 立即数传送到通用寄存器 MOV AL,0FH MOV SI,1200H ★注意立即数只能用作源操作数。 存储器与通用寄存器数据传送 以存储器为源作数,通用寄存器为目的操作数 传送的数据类型(字节、字)由通用寄存器确定 MOV AL,[SI] MOV AX,ALPHA MOV BX,ALPHA[BP] 存储器与通用寄存器数据传送 当存储器为目的操作数,通用寄存器为源操作数时 MOV [DI],AL MOV ES:[BP+4],SI 立即数传送至存储器 设在数据段中定义如下二个变量: BYTEFLD DB ? ;定义一个字节 WORDFLD DW ? ;定义一个字 那么立即数传至存储器的指令可写成: MOV BYTEFLD,40H ;存储器←立即数(字节) MOV BYTEFLD,140H ;无效操作数,不允许 MOV WORDFLD,1240H ;存储器←立即数(字) MOV WORDFLD[BX],0AB57H ;同上 段寄存器与16位通用寄存器传送 MOV AX,CS ;代码段为源操作数 MOV BX,DS ;数据段为源操作数 ★注意:代码段CS不能充当目的操作数 。 段寄存器与存储器之间传送 此种类型的传送与段寄存器与通用寄存器之间传送相类似,遵循相同的传送规则,只需将通用寄存器操作数换成存储器操作数即可。如: MOV DS,[SI] MOV [DI],ES MOV总结 可在CPU内或CPU和存储器之间传送字或字节 传送的信息可从寄存器到寄存器 立即数到寄存器 立即数到存储单元 存储单元到寄存器 寄存器到存储单元 寄存器或存储单元到除CS外的段寄存器 段寄存器到寄存器或存储单元 MOV总结 MOV指令的目的操作数不允许用立即数方式,也不允许用CS寄存器。 除源操作数为立即数的方式外,两操作数必须有一个是寄存器。 不允许在两个段寄存器之间直接传送数据 不允许在两个存储器之间直接传送数据 立即数不能直接送段寄存器 符号扩展和零扩展传送指令 符号扩展传送指令 MOVSX D,S ;(D)←(S) 功能:是将S操作数的符号位来填充D操作数的高阶有效位。 MOVSX EBX,AX 设(AX)=8000H, 指行执行后(EBX)=0FFFF8000H MOVSX AX,AL 设(AL)=0A5H, 指令执行后AX=0FFA5H 符号扩展和零扩展传送指令 零扩展传送指令 MOVZX D,S ;(D)←(S) 其指令的功能与MOVSX类似,所不同的是目的操作数的高阶位全部用零填充,其余规定不变。 MOVZX AX,AL 设(AL)=0A5H, 指令执行后, AX=00A5H 又如:MOVZX CX ,BYTE PTR DATA-BYTE 设存储器地址DATA-BYTE的内容为0C7H, 指令执行后,CX=00C7H。 XCHG指令 XCHG D,S ;(D)??(S) 功能:将源操作数和目的操作数的内容相互交换。 ★注意:源操作数和目的操作数可以是通用寄存器或存储器,但D和S不得同时是存储器操作数。 XCHG指令 例如: 指令 XCHG AX,BX 设(AX)=1234H,(BX)=5678H, 指令执行后 (AX)=? , (BX)=? XCHG指令 又如指令: XCHG BETA,AX 其中BETA为存储器变量,且是字变量, 指令执行前,BETA字变量中存储的内容是55AAH,(AX)=3344H, XLAT和XLATB指令 XL
文档评论(0)