日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Irvine32鏈接庫過程的使用說明

CloseFile 關(guān)閉文件

mov eax, fileHandle call CloseFile

Clrscr 清屏

call WaitMsg call Clrscr

CreateOutputFile 打開文件進(jìn)行寫

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

Clrf 將光標(biāo)定位到下一行的開始位置

call Clrf

Delay 暫停程序指定毫秒數(shù)

mov eax, 1000 call Delay

DumpMem 用十六進(jìn)制形式顯示一段內(nèi)存區(qū)域

.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 用十六進(jìn)制形式顯示eax, ebx, ecx, edx, esi, edi, ebp, esp, eip【調(diào)用DumpRegs的下一條指令】, eflags的內(nèi)容

GetCommandTail 程序命令行復(fù)制到一個空字符結(jié)束的字符串中,若命令行為空,則進(jìn)位置1,否則清零,至少為129個字符

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

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

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

GetMseconds 獲取主機從午夜開始經(jīng)過的毫秒數(shù),用eax返回值

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

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

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

Gotoxy 將光標(biāo)定位到指定位置,x:0到79,y:0到24,x: dl,y:dh

mov dh, 20 mov dl, 20 call Gotoxy

IsDigit 確定al中的數(shù)值是否是一個有效十進(jìn)制的ascii碼,若是,則零標(biāo)志為1,否則為0

mov al, somechar call IsDigit

MsgBox 顯示一個帶選擇項的圖形界面彈出消息框,運行于控制臺有效。edx傳遞內(nèi)容偏移量,ebx傳遞標(biāo)題偏移量,沒有,則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傳遞內(nèi)容偏移量,ebx傳遞標(biāo)題偏移量,沒有,則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 打開一個已存在的文件進(jìn)行輸入

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

ParseDecimal32 將一個無符號十進(jìn)制數(shù)字符串轉(zhuǎn)換為32位二進(jìn)制數(shù)

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

ParseInteger32 將一個有符號十進(jìn)制數(shù)字符串轉(zhuǎn)換為32位二進(jìn)制數(shù)

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

Random32 生成一個32位隨機整數(shù)

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

Randomize 為Random32和RandomRange的第一個種子進(jìn)行初始化

call Randomizemov ecx, 10L1: call Random32loop L1

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

.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位無符號十進(jìn)制數(shù),用eax返回,返回值為第一個非數(shù)字字符之前的所有有效數(shù)字,前導(dǎo)空格忽略

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

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

  • cf為0,則eax為讀取的字節(jié)數(shù),否則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位十六進(jìn)制整數(shù),用eax返回二進(jìn)制數(shù)。對無效字符不進(jìn)行錯誤檢查。A到F大小寫都可用,最多為8個字符,超過8個忽略,忽略前導(dǎo)空格

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

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

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

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

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

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

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

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

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

Str_length 返回空字符結(jié)束的字符串的長度,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二進(jìn)制格式抽控制臺窗口輸出一個整數(shù),用eax傳遞該整數(shù)。

mov eax, 12346AF9h call WriteBin

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

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

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

mov al, 'A' call WriteChar

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

mov eax, 295 call writeDec

WriteHex 以8位十六進(jìn)制格式向控制臺窗口輸出一個32位無符號整數(shù),若需要,應(yīng)插入前置0,eax傳遞該整數(shù)

mov eax, 7fffh call WriteHex

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

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

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

mov eax, 216543 call WriteInt

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

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

WriteToFile 向一個輸出文件寫入緩沖區(qū)內(nèi)容。用eax傳遞有效文件句柄,edx傳遞緩沖區(qū)偏移量,ecx傳遞定稿的字節(jié)數(shù),eax>0,則寫入的是字節(jié)數(shù),否則錯誤

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 向控制臺窗口輸出應(yīng)用程序在調(diào)用系統(tǒng)函數(shù)時最近產(chǎn)生的錯誤信息

call WriteWindowsMsg

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。