Win32彙編 測試Irvine32庫

2021-10-04 06:31:30 字數 2374 閱讀 7251

測試修改cmd背景顏色,輸入輸出整數,輸出字串,列印記憶體內容等函式。

;// 測試 irvine32 庫

;// clrscr 清空控制台

;// crlf 輸出回車換行

;// dumpmem 列印記憶體內容

;// readint 輸入32位整數

;// settextcolor 設定背景和字型顏色

;// waitmsg 暫停執行,輸出等待資訊

;// writebin 輸出整數(二進位制)

;// writehex 輸出整數(十六進製制)

;// writestring 輸出字串

include irvine32.inc

.data

count = 4 ;// 迴圈輸入4個整數

bluetextongray = blue + (lightgray * 16) ;// 灰底藍字

defaultcolor = lightgray + (black * 16) ;// 黑底灰字

arrayd sdword 12345678h, 1a4b2000h, 3434h, 7ab9h ;// 有符號32位陣列

prompt byte "enter a 32-bit signed integer: ", 0 ;// 提示輸入

.code

main proc

;// 設定灰底藍字

mov eax, bluetextongray

call settextcolor

call clrscr

mov esi, offset arrayd

mov ebx, type arrayd

mov ecx, lengthof arrayd

call dumpmem

;// 迴圈 count 次,輸入32位整數,依次輸出十進位制、十六進製制、二進位制形式

call crlf

mov ecx, count

l1:mov edx, offset prompt

call writestring

call readint ;// 讀取整數到 eax

call crlf

call writeint ;// 輸出 eax 中的整數

call crlf

call writehex

call crlf

call writebin

call crlf

call crlf

loop l1

call waitmsg

;// 恢復預設背景顏色和字型顏色

tab = 9 ;// tab 的 ascii 碼

.code

main proc

call randomize ;// 初始化隨機數種子

call rand1

call rand2

exit

main endp

;// 生成10個隨機數

rand1 proc

mov ecx, 10

l1:call random32 ;// 生成隨機整數,儲存到 eax

call writedec

mov al, tab

call writechar ;// 輸出tab

loop l1

call crlf ;// 回車換行

retrand1 endp

;// 生成10個 -50 到 +49 的隨機數

rand2 proc

mov ecx, 10

l1:mov eax, 100 ;// 數值範圍 0~99

call randomrange ;// 生成隨機整數

sub eax, 50

call writeint

mov al, tab

call writechar

loop l1

call crlf

retrand2 endp

end main

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...