日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

汇编 Irvine32链接库中一些过程函数的使用说明

發布時間:2025/6/17 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编 Irvine32链接库中一些过程函数的使用说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Irvine32鏈接庫過程的使用說明

CloseFile 關閉文件

mov eax, fileHandle call CloseFile

Clrscr 清屏

call WaitMsg call Clrscr

CreateOutputFile 打開文件進行寫

.data filename byte "newfile.txt", 0 .code mov edx, offset filename call CreateOutputFile

Clrf 將光標定位到下一行的開始位置

call Clrf

Delay 暫停程序指定毫秒數

mov eax, 1000 call Delay

DumpMem 用十六進制形式顯示一段內存區域

.data array dword 1, 2, 3, 4, 5, 6, 7, 8, 9, 0Ah, 0Bh .code main procmov esi, offset arraymov ecx, lengthof arraymov ebx, type arraycall DumpMem

DumpRegs 用十六進制形式顯示eax, ebx, ecx, edx, esi, edi, ebp, esp, eip【調用DumpRegs的下一條指令】, eflags的內容

GetCommandTail 程序命令行復制到一個空字符結束的字符串中,若命令行為空,則進位置1,否則清零,至少為129個字符

; Ecrypt file1.txt file2.txt.data cmdTail byte 129 dup(0) .code mov edx, offset cmdTail call GetCommandTail

GetMaxXY 獲取控制臺窗口緩沖區的大小, dx列數,ax行數,不超過255

.data rows byte ? cols byte ? .code call GetMaxXY mov rows, al mov cols, dl

GetMseconds 獲取主機從午夜開始經過的毫秒數,用eax返回值

.data startTime dword ? .code call GetMseconds mov startTime, eax L1: loop L1 call GetMseconds sub eax, startTime

GetTextColor 獲取控制臺當前的前景色和背景色, al高4位是背景色,低4位是前景色

.data color byte ? .code call GetTextColor mov color, al

Gotoxy 將光標定位到指定位置,x:0到79,y:0到24,x: dl,y:dh

mov dh, 20 mov dl, 20 call Gotoxy

IsDigit 確定al中的數值是否是一個有效十進制的ascii碼,若是,則零標志為1,否則為0

mov al, somechar call IsDigit

MsgBox 顯示一個帶選擇項的圖形界面彈出消息框,運行于控制臺有效。edx傳遞內容偏移量,ebx傳遞標題偏移量,沒有,則ebx為0

.data caption byte "dialog Title", 0 HelloMsg byte "This is a pop-up message box.", 0dh, 0ah,"Click OK to continue...", 0 .code mov ebx, offset caption mov edx, offset HelloMsg call MsgBox

MsgBoxAsk 顯示一個帶有Yes和No按鈕的圖形彈出消息框,運行于控制臺有效。edx傳遞內容偏移量,ebx傳遞標題偏移量,沒有,則ebx為0,eax中的值表示用戶選擇的是哪個按鈕,IDYES(6)和IDNO(7)

.data caption byte "Survey Completed", 0 question byte "Thank you for completing the survey.", 0dh, 0ah,"Would you like to receive the results?", 0 .code mov ebx, offset caption mov edx, offset queston call MsgBoxAsk

OpeninputFile 打開一個已存在的文件進行輸入

.data filename byte "myfile.txt", 0 .code mov edx, offset filename call OpeninputFile

ParseDecimal32 將一個無符號十進制數字符串轉換為32位二進制數

.data buffer byte "B193" bufSize = ($ - buffer) .code mov edx, offset buffer mov ecx, bufSize call ParseDecimal32 ; 返回eax; 整數為空或只有空格或整數大于最大值,eax=0 cf=1 ; eax為轉換后的值, cf = 0

ParseInteger32 將一個有符號十進制數字符串轉換為32位二進制數

.data buffer byte "-8192" bufSize = ($ - buffer) .data mov edx, offset buffer mov ecx, bufSize call ParseInteger32 ; 返回eax ; 不能表示,則of = 1

Random32 生成一個32位隨機整數

.data randVal dword ? .code call Random32 mov randVal, eax

Randomize 為Random32和RandomRange的第一個種子進行初始化

call Randomizemov ecx, 10L1: call Random32loop L1

RandomRange 在0到n-1生成一個隨機整數,n是eax傳遞的參數,并用eax返回隨機整數

.data randVal dword ? .code mov eax, 5000 call RandomRange mov randVal, eax

ReadChar 從鍵盤讀取一個字符,并用al返回,但不在控制臺窗口回顯

.data char byte ? call ReadChar mov char, al ; ah包含鍵盤掃描碼,al=0

ReadDec 從鍵盤讀取一個32位無符號十進制數,用eax返回,返回值為第一個非數字字符之前的所有有效數字,前導空格忽略

.data intVal dword ? .code call ReadDec mov intVal, eax ; 整數為空或只有空格或整數大于最大值,eax=0 cf=1 ; eax為轉換后的值, cf = 0

ReadFromFile 讀取存儲緩沖區中的一個輸入磁盤文件,eax傳遞文件的句柄,edx傳遞緩沖區的偏移量,ecx傳遞讀取的最大字節數

  • cf為0,則eax為讀取的字節數,否則eax為錯誤代碼,用WriteWindowsMsg獲取錯誤代碼的文本形式
.data BUFFER_SIZE = 5000 buffer byte BUFFER_SIZE dup(?) bytesRead dword ? .code mov edx, offset buffer mov ecx, BUFFER_SIZE call RadFromFile mov bytesRead, eax ; call WriteWindowsMsg

ReadHex 從鍵盤讀取一個32位十六進制整數,用eax返回二進制數。對無效字符不進行錯誤檢查。A到F大小寫都可用,最多為8個字符,超過8個忽略,忽略前導空格

.data hexVal dword ? .code call ReadHex mov hexVal, eax

ReadInt 從鍵盤讀取一個32位有符號整數,用eax返回。可用+/-,后跟數字。不能表示, ov=1,返回錯誤信息,返回值為第一個非數字字符之前的所有有效數字,前導空格忽略

.data intVal sdword ? .code call ReadInt mov intVal, eax

ReadKey 執行無等待鍵盤檢查。沒有按鍵操作,則zf=1,否則為0。向al送入0或ascii碼。al=0,則為一個特殊鍵。ah為虛擬掃描碼。dx為虛擬鍵碼。ebx為鍵盤標志位

  • eax和edx的高16位會被覆蓋

ReadString 從鍵盤讀取一個字符串,直到遇到回國鍵。edx傳遞緩沖區的偏移量,ecx傳遞用戶輸入的字符數+1,eax返回字符數

.data buffer byte 21 dup(0) byteCount dword ? .code mov edx, offset buffer mov ecx, sizeof buffer call ReadString mov byteCount, eax ; 自動加一個null終止符

SetTextColor 設置輸出文本的前景色和背景色。給eax分配一個顏色屬性

mov eax, yellow + (blue shl 4) call SetTextColor

Str_length 返回空字符結束的字符串的長度,edx傳遞字符串的偏移量,eax返回長度

.data buffer byte "abcde", 0 bufLength dword ? .code mov edx, offset buffer call Str_lengthof mov bufLength, eax

WaitMsg 顯示“Press any key to continue…”,等待用戶按鍵

call WaitMsg

WriteBin 以ascii二進制格式抽控制臺窗口輸出一個整數,用eax傳遞該整數。

mov eax, 12346AF9h call WriteBin

WriteBinB 以ascii二進制格式向控制臺窗口輸出 一個32位整數,eax傳遞該整數,ebx表示以字節為單位的顯示大小(1,2,4)

mov eax, 00001234h mov ebx, type word call writeBinB

WriteChar 向控制臺窗口寫一個字符,用al傳遞字符

mov al, 'A' call WriteChar

WriteDec 以十進制格式向控制臺窗口輸出一個32位無符號整數,且沒有前置0,用eax傳遞該整數

mov eax, 295 call writeDec

WriteHex 以8位十六進制格式向控制臺窗口輸出一個32位無符號整數,若需要,應插入前置0,eax傳遞該整數

mov eax, 7fffh call WriteHex

WriteHexB 以十六進制格式向控制臺窗口輸出一個32位無符號整數,若需要,應插入前置0,eax傳遞該整數,ebx表示以字節為單位的顯示大小(1,2,4)

mov eax, 7fffh mov ebx, type word call WriteHexB

WriteInt 以十進制格式向控制臺窗口輸出一個32位有符號整數,有前置符號,沒有前置0。用eax傳遞整數

mov eax, 216543 call WriteInt

WriteString 以窗口輸出一個空字符結束的字符串,edx傳遞字符串的偏移量

.data prompt byte "Enter your name: ", 0 .code mov edx, offset prompt call WriteString

WriteToFile 向一個輸出文件寫入緩沖區內容。用eax傳遞有效文件句柄,edx傳遞緩沖區偏移量,ecx傳遞定稿的字節數,eax>0,則寫入的是字節數,否則錯誤

BUFFER_SIZE = 5000 .data fileHandle dword ? buffer byte BUFFER_SIZE dup(?) .code mov eax, fileHandle mov edx, offset buffer mov ecx, BUFFER_SIZE call WriteToFile

WriteWindowsMsg 向控制臺窗口輸出應用程序在調用系統函數時最近產生的錯誤信息

call WriteWindowsMsg

總結

以上是生活随笔為你收集整理的汇编 Irvine32链接库中一些过程函数的使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。