談論改變功能特性如下:
這個功能是我自己經驗做的,可以滿足妳的通話要求,但是請註意這個功能有妳要求的代碼。
已進行相關簡化操作,並指出以下簡化說明:
mov
eax,dword
光電帶讀數機(photoelectric tape reader)
ss:[ebp+0xC]
mov
ecx,dword
光電帶讀數機(photoelectric tape reader)
ss:[ebp+0x8]
目標需要的是作為參數使用,但是這裏需要使用壹個寄存器來傳遞,下面
推
eax
推
ecx
我的故事被證實了
但是
mov
Ecx,(這裏是基地址8A8240+70+1c8)
確實需要使用ECX寄存器進行傳輸,所以發布的代碼在這裏不做簡化,因為這是壹個必要的操作。
此外,在將它復制到ECX之前,您在這裏有壹個計算操作,我封裝的代碼不負責計算。這樣做的好處是它會計算
把動作留給妳在IDE裏設計,妳只需要把計算結果作為這個函數的參數就可以了!
如果妳不太了解這個計算的意義,可以繼續問我。
呼叫
004368f0
這裏使用直接尋址。如果我照原樣寫,將不利於妳的代碼維護和更新。
考慮到維護和更新,在此將其封裝成壹個函數,在call中調用。
004368f0
這裏使用間接尋址!
因為我有2年的WG開發經驗,這個打包的功能不需要使用任何模塊,所以更新維護更簡單方便。
並且可以適用於類似調用的使用,功能執行速度快,因為不像第三個模塊那樣重新打開壹段內存。
然後把代碼寫入內存,再調用內存地址,再釋放內存,但是光靠這個操作就失去效率了。
且不說如果有其他異常,這個內存可能會泄露!
當然,有些模塊在調用CALL後可以將返回值返回給IDE。其實這個不用模塊也能實現!
不過考慮到妳調用的返回值可能意義不大,我也懶得做了!
代碼註釋中$字符後的內容是十六進制的。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *代碼段開始。
。版本
2
。子程序
打電話走路
。參數
呼叫步行地址,
整數
。參數
ecx要求的地址,
整數類型,
,
mov
Ecx,(這裏是基地址8A8240+70+1c8)
。參數
參數1,
整數
。參數
參數2,
整數
放置代碼
({
96
})
'
普沙德
寄存器被臨時存儲,以防止調用函數由於寄存器的操作而導致其他錯誤。
'
按下此函數中的第四個參數作為目標函數的第二個參數。
放置代碼
({
255,
117,
20
})
'
推
dword
光電帶讀數機(photoelectric tape reader)
[ebp+$14]
'
按下此函數中的第三個參數作為目標函數的第壹個參數。
放置代碼
({
255,
117,
16
})
'
推
dword
光電帶讀數機(photoelectric tape reader)
[電子預算+$10]
'
mov
Ecx,(這裏是基地址8A8240+70+1c8)
放置代碼
({
139,
77,
12
})
'
mov
ecx,[ebp+$0c]
'
呼叫
$004368f0
註意:這不是直接尋址,而是間接尋址。
放置代碼
({
255,
85,
八
})
'
呼叫
dword
光電帶讀數機(photoelectric tape reader)
[ebp+$08]
放置代碼
({
97
})
'
波普德
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *代碼段結束。
有必要采納答案。這種體驗指南是用錢買不到的。記得同意!