|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
机器重装了系统, 因为最近在学C语言 ,所以没装汇编的编译系统, 用 VC内联汇编形式 试的代码 .
以下两段 代码执行的 结果是一样的。
shl eax, 1 //shl 功能: 对给定的目的操作数左移COUNT次,每次移位时最高位移入标志位CF中,最低位补零
二进制形式向左进1位 十进制数8的二进制形式是 1000, 十进制数16的二进制形式是 10000
类似C语言的,左移运算符“<<”
eax ebx 暂时可以理解为8080的 ax bx
#include <stdio.h>
void main()
{
int a ,b,c;
a=55;
b=15;
__asm
{
mov eax,a
mov ebx,b
sub eax,ebx
mov c,eax
}
printf("%d\n",c);
}
》》》》》》邪》》》》》》》》》》》》恶》》》》》》》》》》》》分》》》》》》》》》》》》割》》》》》》
#include <stdio.h>
void main()
{
int a ,b,c;
a=55;
b=15;
__asm
{
mov eax,a
mov ebx,b
push ebx
push eax
xor eax, ebx //eax ==56
pop ecx //ecx=55
push eax
push ecx
pop eax //eax ==55
push eax //eax ==55
or eax, ebx //eax ==63
pop ebx //ebx==55
xor eax, ebx //eax ==8
shl eax, 1 //eax ==16
push eax
pop ebx //ebx==16
pop eax //eax ==56
sub eax, ebx
pop ebx //ebx==15
mov c,eax
}
printf("%d\n",c);
}
|
|