- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理及接口技术第3章 Intel处理器指令系统及汇编语言三、数据传送、寻址和算数运算(一)数据传送指令3. MOV指令mov destination,source回忆:C++或Java中的赋值语句 dest = source;MOV指令需要遵循的规则:两个操作数的尺寸必须一致。两个操作数不能同时为内存操作数。目的操作数不能是CS,EIP和IP。立即数不能直接送至段寄存器。(一)数据传送指令6. 直接偏移操作数例:.dataarrayB BYTE 10h,20h,30h,40h,50h.codemov al,arrayB ; AL=10hmov al,[arrayB+1] ; AL=20hmov al,[arrayB+2] ; AL=30hmov al,[arrayB+20] ; AL=??注意:MASM并不要求一定要使用方括号。MASM对有效地址没有内建的范围检查模块。(一)数据传送指令6. 直接偏移操作数例:字和双字数组.dataarrayW WORD 100h,200h,300h.codemov ax,arrayW ; AX=100hmov ax,[arrayW+2] ; AX=200h.dataarrayD DWORD 10000h,20000h.codemov eax,arrayD ; EAX=10000hmov eax,[arrayD+4] ; EAX=20000h(二)加法和减法1. INC和DEC指令含义:increment和decrement,加1、减1。格式:inc reg/memdec reg/mem例:.datamyWord WORD 1000h.codeinc myWord ; 1001hmov bx,myWorddec bx ; 1000h(二)加法和减法2. ADD指令将同尺寸的源操作数和目的操作数相加,结果在目的操作数中(不改变源操作数)。格式:与MOV指令相同。add 目的操作数,源操作数例:.datavar1 DWORD 10000hvar2 DWORD 20000h.codemov eax,var1add eax,var2 ; 30000h(二)加法和减法3. SUB指令将源操作数从目的操作数中减掉,结果在目的操作数中(不改变源操作数)。格式:与MOV、ADD指令相同。sub 目的操作数,源操作数例:影响的标志位:CF、ZF、SF、OF、AF、PF.datavar1 DWORD 30000hvar2 DWORD 10000h.codemov eax,var1sub eax,var2 ; 20000h(二)加法和减法4. NEG指令含义:negate,求负。将操作数按位取反、末位加1。格式:neg regneg mem影响的标志位:CF、ZF、SF、OF、AF、PF(二)加法和减法5. 例子:实现算数表达式Rval = -Xval + (Yval – Zval).dataRval SDWORD ?Xval SDWORD 26Yval SDWORD 30Zval SDWORD 40.codemov eax,Xvalneg eax ; EAX = -26mov ebx,Yvalsub ebx,Zval ; EBX = -10add eax,ebxmov Rval,eax ; -36(二)加法和减法6. 算数运算影响的标志零标志和符号标志mov cx,1sub cx,1 ; ZF =mov ax,0FFFFhinc ax ; ZF =inc ax ; ZF =110mov cx,0sub cx,1 ; SF =add cx,2 ; SF =10(二)加法和减法6. 算数运算影响的标志进位标志(无符号算数运算)INC和DEC指令不影响进位标志。mov al,0FFhadd al,1 ; CF =1mov ax,00FFhadd ax,1 ; CF =0mov ax,0FFFFhadd ax,1 ; CF =1mov al,1sub al,2 ; CF =1(二)加法和减法6. 算数运算影响的标志溢出标志(有符号算数运算)其中,Cn为符号位产生的进位,即标志位CF; Cn-1为最高有效位向符号位产生的进位。mov al,+127add al,1 ; OF =1mov al,-128sub al,1 ; OF =1mov al,-128 ; AL =neg al ; AL = , OF 1mov al,+127 ; AL =neg al ; AL = , OF 0(二)加法和减法6. 算数运算影响的标志CPU如何知道一个
文档评论(0)