- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数据操作 4.1 传送指令 4.2 算术运算 4.3 BCD码算术运算 4.4 位运算指令 4.1 传送指令 实现数据、地址、标志的传送 通用数据传送指令 数据交换指令 取地址指令 4.1.1 通用数据传送指令 1.MOV指令 格式:MOV DST, SRC 功能:DST代表目标操作数,SRC代表源操作数, DST和SRC的数据类型应该一致。 MOV指令中操作数的类型: (1)常数,也叫立即数 (2)通用寄存器 (3)内存操作数 (4)段寄存器 举例: MOV dVar, 20; ① 立即数 - 内存操作数 MOV EAX, 20 ; ② 立即数 - 通用寄存器 MOV EDI,ESI; ③ 通用寄存器-通用寄存器 MOV EDI,[EBX+4]; ④ 内存操作数 - 通用寄存器 MOV [EAX+4],EBX; ④ 通用寄存器 - 内存操作数 举例(续): MOV BX, CS; ⑤ 段寄存器 - 通用寄存器 MOVDS, AX; ⑤ 通用寄存器 - 段寄存器 MOVWORD PTR [EAX], DS ; ⑥ 段寄存器 - 内存操作数 MOVFS, WORD PTR DS:[0080H]; ⑥ 内存操作数- 段寄存器 MOV指令限制 不能直接在两个内存操作数之间传送 立即数不能直接送段寄存器 立即数不能作为目标操作数 两个段寄存器之间不能直接传送 CS段寄存器不能作为目标操作数 2.MOVZX指令 格式:MOVZX DST,SRC 功能:将SRC传送给DST 高位不足的部分用0填充 SRC不能是立即数 DST是16位操作数时,SRC必须是8位操作数。 SRC作为DST的低8位,DST的高8位设为0。 DST是32位操作数时,SRC可以是8位或16位操作数。 SRC作为DST的低8位或低16位,DST的高24位或高16位为0。 3.MOVSX指令 格式:MOVSX DST,SRC 功能:将SRC传送给DST,高位不足的部分 用SRC的符号位(最高位)填充。 SRC不能是立即数。 DST是16位操作数时,SRC必须8位操作数。 SRC作为DST的低8位,DST的高8位设为全0或全1,与SRC的最高位相同。 DST是32位操作数时,SRC可以8位或16位操作数。 SRC作为DST的低8位或低16位,DST的高24位或高16位为SRC的最高位。 4.1.2 数据交换指令 1.XCHG指令 格式:XCHG OPRD1,OPRD2 功能:将OPRD1和OPRD2中的内容相互交换 两个操作数中有一个是通用寄存器,另一个可以是寄存器或内存操作数; 两个操作数中不能有立即数,也不能同时为内存操作数。 举例: MOV AX, 0382H ; AH=03H, AL=82H XCHG AH, AL ; 交换后, AH=82H, AL=03H MOV EAX, 3 ; EAX MOV dVar, 0 ; dVar XCHG dVar, EAX ; 交换后, EAX,dVar 2.BSWAP指令 格式:BSWAP OPRD 功能:OPRD必须是32位寄存器,将OPRD中的最高1字节和最低1字节互换;中间的2字节互换 。 举例:MOV EAX, 7F860382H ; EAX=7F860382H BSWAP EAX ; 互换后,EAX=8203867FH 4.1.3 取地址指令 1.LEA指令 格式:LEA DST,SRC 功能:把SRC的有效地址传送给DST SRC必须是一个内存操作数; DST必须是一个寄存器 举例将dVar的有效地址0040400AH送给EAX。 LEA EAX, DVAR 2.LDS指令 格式:LDS DST,SRC 功能:从SRC中取出6个字节,前面4个字节的内容作为双字送给DST,后面两个字节作为一个字送给DS。 DST是一个32位寄存器 通常SRC定义为FWORD类型。 3.LES,LFS,LGS指令 这3条指令用法和功能与LDS指令相同。区别:后面两个字节内容 LDS要装入DS; LES要装入ES; LFS要装入FS; LGS要装入GS。 4.2 算术运算 4.2.1 加法指令 4.2.2 减法指令 4.2.3 符号位扩展指令 4.2.4 乘法指令 4.2.5 除法指令
文档评论(0)