指令1 2015.1.19

一、ADC指令:带进位加法

1、格式:ADC R/M,R/M/IMM (ADC 寄存器/内存,寄存器/内存/立即数)    两边不能同时为内存,宽度要一样

2、

①ADC AL,CL

CL加到AL中1+2应为3,但是是ADC再进位加法变成了4,C位也从1变成了0(因为AL+CL后高位没有溢出,所以变成了0)

 

②ADC BYTE PTR DS:[12FFC4],2

12FFC4的内存加2应该变成3D但是进位变成3E

 

③ADC BYTE PTR DS:[12FFC4],AL

 

二、SBB指令:带借位减法

1、格式:SBB R/M,R/M/IMM     两边不能同时为内存      宽度要一样

2、SBB AL,CL

 

SBB BYTE PTR DS:[12FFC4],2

SBB BYTE PTR DS:[12FFC4],AL

三、XCHG指令

 

①寄存器之间交换:XCHG AL,CL            AL与CL交换

 ②XCHG DWORD PTR DS:[12FFC4],EAX            内存与寄存器交换

 四、MOVS指令

 

 MOV ESI,12FFDC

MOV EDI,12FFD0

MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]

执行前两个指令后寄存器的值变成了对应内存的值,最后一条指令执行后寄存器的值在前两条指令的基础上再各加了4,如果把最后一条指令的DWORD换成WORD就是各加2

 

 

 WORD,减2

 五、STOS指令

 

第一二个指令执行后是EAX是12345678,EDI变成了12FFC4,第三条指令执行后是DWORD减4

 

六、REP指令

REP MOVSD是,下面第二条指令的缩写

第二条指令的作用是重复把ESI往EDI移动数据,因为是16进制,所以10是16次

 

posted @   Auriry  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示