Win32彙編 陣列求和函式

2021-10-04 06:15:00 字數 894 閱讀 9782

32位陣列求和函式,esi 儲存陣列偏移,ecx 儲存陣列長度,同時用於 loop 計數, eax 返回和。

.386

.model flat, stdcall

.stack 4096

exitprocess proto, dwexitcode:dword

.data

array dword 10000h, 20000h, 30000h, 40000h, 50000h

thesum dword ?

.code

main proc

mov esi, offset array ;// esi 作為引數儲存陣列位址

mov ecx, lengthof array ;// ecx 是陣列長度引數

call arraysum

mov thesum, eax

invoke exitprocess, 0

main endp

arraysum proc

push esi ;// 如果不希望函式修改暫存器,則用棧儲存,返回時恢復

push ecx

mov eax, 0 ;// sum = 0

l1:add eax, [esi]

add esi, type dword

loop l1

pop ecx

pop esi

retarraysum endp

end main

函式中使用push pop 臨時儲存暫存器的值,並在ret前恢復。也可以用uses偽指令代替,讓彙編器自動新增push pop。

Win32彙編基礎

常用指令 mov 目標運算元,源運算元 mov eax,0x0 進行資料傳遞 movzx mov zero x 以0填充高位,用法同上,push poppushad 所有暫存器壓棧 8個 popad 所有暫存器出棧 8個 lea 取位址指令,類似c語言中的 call 呼叫函式指令 add 加 sub...

Win32彙編 實數

386 選擇的處理器 model flat,stdcall option casemap none 指明識別符號大小寫敏感 include kernel32.inc 要引用的標頭檔案 includelib kernel32.lib 要引用的庫檔案 includelib msvcrt.lib 引用c庫...

開始學習win32彙編

前段時間對於csdn的部落格系統徹底失望,在我現在寫的東西都還不知道能不能正常發出去,鬱悶,加上過年有這麼久沒有來了。這段時間開始學習彙編,說到彙編,大學開過兩門相關課程,微機原理和微控制器都是學這方面的,不過那都是8086,51級別的彙編,感覺根本跟不上時代,那時候學的還不錯 現在想學習學習win...