當前位置:編程學習大全網 - 源碼下載 - 這個走路CALL 用易語言代碼怎麽寫

這個走路CALL 用易語言代碼怎麽寫

下面貼出了壹函數,只要把下面的代碼直接復制到E的IDE中即可使用!

說說改函數功能特點如下:

該函數為本人親身經驗制作,能對符合妳的CALL的要求,但請註意,該函數有對妳的要求的代碼

進行了相關的簡化操作,下面指出簡化說明:

mov

eax,dword

ptr

ss:[ebp+0xC]

mov

ecx,dword

ptr

ss:[ebp+0x8]

目標需要的是作為參數使用,而要求在這裏使用寄存器進行傳遞,緊接下來的

push

eax

push

ecx

已經證實我的說法

mov

ecx,(這裏是基址8A8240+70+1c8)

就確實是需要使用ECX寄存器來傳遞,所以,貼出的代碼中沒有對這裏進行簡化,因為這是必要動作

另外,妳這裏在復制給ECX前有個計算動作,而我封裝的代碼不負責計算,這樣做的好處就是,將計算

的動作交給妳自己在IDE中進行設計,妳只需要把計算結果作為本函數的參數即可!

如果妳對這段計算的意義不太了解,可以繼續問我.

call

004368f0

這裏用的是直接尋址,如果我原本照寫的話,將不利於妳對代碼的維護和更新

考慮到維護和更新,特此封裝為函數,在call

004368f0

這裏改用間接尋址!

因本人有2年開發WG經驗,這個封裝好的函數不需要使用任何模塊,更新維護更加簡單方便,

並且能適用類似的CALL的使用,函數執行速度快,因為不像第三放模塊那樣重新開辟壹段內存,

然後把代碼寫入內存,然後再CALL內存地址,然後再釋放內存,然而光是這樣的操作就失去了效率,

更別說如果出現其他異常,這段內存就有可能泄露!

當然,有些模塊可以使用調用CALL後將返回值返回給IDE其實,這個也是可以不用模塊實現的!

然而考慮到妳這個CALL的返回值可能不存在意義,我就懶得去搞了!

代碼註釋中帶$字符後面的內容為十六進制

*******************************************代碼段開始

.版本

2

.子程序

Call走路

.參數

Call走路地址,

整數型

.參數

ecx要求的地址,

整數型,

,

mov

ecx,(這裏是基址8A8240+70+1c8)

.參數

參數1,

整數型

.參數

參數2,

整數型

置入代碼

({

96

})

'

pushad

'暫存寄存器,防止被Call的函數因對寄存器的操作引發其他錯誤

'

壓入本函數中的第四個參數作為目標函數的第二個參數

置入代碼

({

255,

117,

20

})

'

push

dword

ptr

[ebp+$14]

'

壓入本函數中的第三個參數作為目標函數的第壹個參數

置入代碼

({

255,

117,

16

})

'

push

dword

ptr

[ebp+$10]

'

mov

ecx,(這裏是基址8A8240+70+1c8)

置入代碼

({

139,

77,

12

})

'

mov

ecx,[ebp+$0c]

'

call

$004368f0

註:這裏並不是直接尋址,而是間接尋址

置入代碼

({

255,

85,

8

})

'

call

dword

ptr

[ebp+$08]

置入代碼

({

97

})

'

popad

*******************************************代碼段結束

采納答案是必須的了,這經驗指導用錢買不到,記得點贊同!

  • 上一篇:準新車奔馳AMG G63大漠獵遊俠限量版
  • 下一篇:文件打不開
  • copyright 2024編程學習大全網