汇编Win32 汇编[29] – 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE 等 这里的 “串” 并不单指字符串, 包括所有连续的数据(如数组); 串指令只用于内存操作. 移动串指令: MOVSB、MOVSW、MOVSD ;从 ESI -> EDI; 执行后, ESI 与 EDI 的地址移动相应的单位 比较串指令: CMPSB、CMPSW、CMPSD ;比较 ESI、EDI; 执行后, ES... 懒人 1074℃ 0评论 0喜欢
汇编Win32 汇编[28] – 跳转指令: JMP、JECXZ、JP 等 跳转指令分三类: 一、无条件跳转: JMP; 二、根据 CX、ECX 寄存器的值跳转: JCXZ(CX 为 0 则跳转)、JECXZ(ECX 为 0 则跳转); 三、根据 EFLAGS 寄存器的标志位跳转, 这个太多了. 根据标志位跳转的指令: JE ;等于则跳转 JNE ;不等于则跳转 JZ ;为 0 则跳转 JNZ ;不为 0... 懒人 1009℃ 0评论 0喜欢
汇编Win32 汇编[27] – 乘除指令: MUL、IMUL、DIV、IDIV MUL: 无符号乘 ;影响 OF、CF 标志位 ;指令格式: ;MUL r/m ;参数是乘数 ;如果参数是 r8/m8, 将把 AL 做乘数, 结果放在 AX ;如果参数是 r16/m16, 将把 AX 做乘数, 结果放在 EAX ;如果参数是 r32/m32, 将把 EAX 做乘数, 结果放在 EDX:EAX ; Tes... 懒人 1019℃ 0评论 0喜欢
汇编Win32 汇编[26] – 加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP ;INC(Increment): 加一 ;DEC(Decrement): 减一 ;NEG(Negate): 求补(求反) ;ADD(Add): 加 ;ADC(Add Carry): 带进位加 ;SUB(Subtract): 减 ;SBB(Subtract With Borrow): 带进位减 ;CMP(Compare): ... 懒人 1022℃ 0评论 0喜欢
汇编Win32 汇编[25] – 符号扩展指令: CBW、CWDE、CDQ、CWD CBW、CWDE、CDQ、CWD: 扩展指令 ;CBW(Convert Byte to Word): 将 AL 扩展为 AX ;CWDE(Convert Word to Extended Double): 将 AX 扩展为 EAX ;CDQ(Convert Doubleword to Quadword): 将 EAX 扩... 懒人 1464℃ 0评论 0喜欢
汇编Win32 汇编[24] – 移位: SHL、SHR SHL、SHR、SAL、SAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR(Shift Arithmetic Right): 算术右移 ;其中的 SHL ... 懒人 1070℃ 0评论 0喜欢
汇编Win32 汇编[23] – 位测试与位扫描指令: BT、BTC、BTR、BTS、BSF、BSR BT、BTS、BTR、BTC: 位测试指令 ;BT(Bit Test): 位测试 ;BTS(Bit Test and Set): 位测试并置位 ;BTR(Bit Test and Reset): 位测试并复位 ;BTC(Bit Test and Complement): 位测试并取反 ... 懒人 1630℃ 0评论 0喜欢
汇编补码(为什么按位取反再加一):告诉你一个其实很简单的问题 首先,阅读这篇文章的你,肯定是一个在网上已经纠结了很久的读者,因为你查阅了所有你能查到的资料,然后他们都会很耐心的告诉你,补码:就是按位取反,然后加一。准确无误,毫无破绽。但是,你搜遍了所有俯拾即是而且准确无误的答案,却仍然选择来看这篇毫不起眼的文章,原因只有一个,只因为你还没有得到你想要的东西。 因为你想要的,不是1+1=2,而是,1+1为什么等于2。当然... 懒人 1831℃ 0评论 0喜欢
汇编汇编语言各种指令的解释与用法 【数据传输指令】;一、通用数据传送指令;1、传送指令MOV(move);指令的汇编格式:MOVDST,SRC;指令的基本功能:(DST)<-(SRC)将;指令支持的寻址方式:目的操作数和源操作数不能同时;指令的特殊要求:目的操作数DST和源操作数SRC;目的操作数DST不能是CS,也不能用立即数方式;2、进栈指令PUSH(pushontothest;出... 懒人 1079℃ 0评论 0喜欢
汇编Win32 汇编[11]: 数据对齐相关的伪指令(ALIGN、EVEN、ORG) 32 位的寄存器容量是 4 字节, 如果内存中的数据都按 4*n 字节对齐, 肯定会加快吞吐速度; 但事实并非如此, 不同大小的数据可能会让寄存器别别扭扭地去处理, 从而降低了运行速度! 如果使用对齐, 就会浪费掉一些内存空间; 其实这是一个需要权衡 “速度” 与 “内存” 得失的问题. 准备使用的测试文件: ... 懒人 1123℃ 0评论 0喜欢