|
本帖最后由 wl1383838438 于 2020-5-8 23:37 编辑
代码较短不在一 一注释,疑惑请看上一篇!
#include<iostream>
using namespace std;
int main()
{
int a = 10;
a++;
cout << "a=" << a << endl;
getchar();
return 0;
}
---------------------------------分割线------------------------
OD中的
//--------------------------------分割线---------------------------
在看win32汇编模拟的(radasm和masm编译通过)
386
.model flat, stdcall
option casemap:none;
include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib
.data
a dd 10;等于od的 mov dword ptr ss:[ebp-0x8],0xa
szText byte 256 dup(?)
szCaption db '标题',0
szfl db '%d'
;----------------------------
.data?
;----------------------------
.code
start:
mov eax,a;等于 mov eax,dword ptr ss:[ebp-0x8]
add eax,1;等于 add,eax,1
;mov a,eax;等于 mov dword ptr ss:[ebp-0x8],eax
;mov ecx,eax;通过测试注释掉2行也是可以的,
push eax
push offset szfl;q取出偏移地址压入堆栈
push offset szText;取出偏移地址压入堆栈
call wsprintf;
;---------------------
push 0
push offset szCaption
push offset szText
push 0
call MessageBox
;---------------------
push 0
call ExitProcess
end start
//---------------------------------------------------------------------------分割线----
自增
.386
.model flat, stdcall
option casemap:none;
include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib
.data
a dd 19;等于od的 mov dword ptr ss:[ebp-0x8],0xa
szText byte 256 dup(?)
szCaption db '标题',0
szfl db '%d'
;----------------------------
.data?
;----------------------------
.code
start:
inc a;自增
push a
push offset szfl;q取出偏移地址压入堆栈
push offset szText;取出偏移地址压入堆栈
call wsprintf;
;---------------------
push 0
push offset szCaption
push offset szText
push 0
call MessageBox
;---------------------
push 0
call ExitProcess
end start
----------------------------------------------自减 ------------------------分割线
.386
.model flat, stdcall
option casemap:none;
include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib
.data
a dd 19;等于od的 mov dword ptr ss:[ebp-0x8],0xa
szText byte 256 dup(?)
szCaption db '标题',0
szfl db '%d'
;----------------------------
.data?
;----------------------------
.code
start:
dec a;-------------------自减
push a
push offset szfl;q取出偏移地址压入堆栈
push offset szText;取出偏移地址压入堆栈
call wsprintf;
;---------------------
push 0
push offset szCaption
push offset szText
push 0
call MessageBox
;---------------------
push 0
call ExitProcess
end start |
上一篇: win32汇编得switch和C++的switch下一篇: win32汇编仿C++循环语句for do- while while
|