编程语言中代码块中的变量
using namespace std;
int max10 = 10;
int i = 0; // 放入内存中
int length[10];
for ( i = 0; i < max10; i++)
{
cout << i + 1 << endl; // 把相加的结果放入 寄存器中 具体看汇编代码 ,这样不应影响内存中的值
length[i] = i;
}
汇编代码:
using namespace std;
int max10 = 10;
00760F55 mov dword ptr [max10],0Ah
int i = 0;
00760F5C mov dword ptr [i],0
int length[10];
for ( i = 0; i < max10; i++)
00760F63 mov dword ptr [i],0
00760F6A jmp __$EncStackInitStart+39h (0760F75h)
00760F6C mov eax,dword ptr [i]
00760F6F add eax,1
00760F72 mov dword ptr [i],eax
00760F75 mov eax,dword ptr [i]
00760F78 cmp eax,dword ptr [max10]
00760F7B jge __$EncStackInitStart+7Fh (0760FBBh)
{
cout << i + 1 << endl;
00760F7D mov esi,esp
00760F7F push offset std::endl<char,std::char_traits<char> > (0761064h)
00760F84 mov eax,dword ptr [i]
00760F87 add eax,1
00760F8A mov edi,esp
00760F8C push eax
00760F8D mov ecx,dword ptr [__imp_std::cout (07760B8h)]
00760F93 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (07760C0h)]
00760F99 cmp edi,esp
00760F9B call __RTC_CheckEsp (07614DDh)
00760FA0 mov ecx,eax
00760FA2 call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0776098h)]
00760FA8 cmp esi,esp
00760FAA call __RTC_CheckEsp (07614DDh)
length[i] = i;
00760FAF mov eax,dword ptr [i]
00760FB2 mov ecx,dword ptr [i]
00760FB5 mov dword ptr length[eax*4],ecx
}
00760FB9 jmp __$EncStackInitStart+30h (0760F6Ch)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)