匯程式設計序
*例1:單個字元的鍵盤輸入與顯示
code segment //說明語句,**段段名為code*例2:顯示「wonderful」字串assume cs:code //指定code段與cs暫存器關聯
start: mov ah,1 //dos系統的1號功能是鍵盤鍵入
int 21h //呼叫dos系統功能,即1號功能可以使用,程式等待鍵盤輸入乙個字元》
後才繼續執行,鍵盤輸入的字元以ascii碼形式被儲存在al暫存器裡
mov dl,al //
add dl,1 //dl加一,為2號功能呼叫準備輸出的字元
mov ah,2 //呼叫2號功能,顯示dl中的字元
int 21h //重申請
mov ah,4ch //4ch功能,程式結束並返回作業系統
int 21h
code ends //說明語句,code**段end
end start //說明語句,告訴匯程式設計序,彙編結束於此,程式的啟動位址為標號為stt
art的那條指令
data segmentedit string.asm 編輯修改string db 『wonderful$』 // 字串需用單引號括起,$為結束標誌
data ends
code segment
assume cs:code,ds:data //code與cs暫存器關聯,data與ds暫存器關聯
start: mov ax,data //data段值傳入ax
mov ds,ax //ax暫存器值傳入ds暫存器
mov dx,offset string //把字串string的起始偏移位址傳入dx暫存器,offset求偏移位址,也可寫做lea dx,data
移位址,沒有offset會求string值
mov ah,9 //呼叫9號功能,顯示字串
int 21h
code ends
end start
masm string 產生obj二進位制彙編檔案,彙編時同時想得到lst列表檔案時,可以鍵入:masm string string string 該命令執行後若因語法錯誤得不到obj檔案,可用edit檢視lst檔案獲取參考資訊
link string 產生exe可執行檔案,同時可產生map(連線映像檔案,給出每個**段在儲存器中的分配情況)和lib檔案(程式需要用到的庫檔案,對於多個模組檔案組成的程式,可以各模組獨自彙編,然後對多個obj檔案link:link string+str2+str3 主模組為string)
執行以上命令出現人機對話時均可按enter鍵執行預設操作
string.exe檔案生成則可以執行
直接輸入string執行文字
另:csdn列印$等特殊字元需要用\$轉譯,>可用於輸出**
*例3 鍵盤輸入緩衝區程式
data segment*例4 寫檔案或裝置buf db 9//定義緩衝區大小為9個位元組
real db ?//實際輸入的字元個數
str db 9dup(?)//輸入的字元在這裡(含回車)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,buf//指向緩衝區
mov ah,0ah
int 21h
code ends
end start
mov ah,40hlea dx,str//str為資料區首位址
mov bx,1//檔案代號=1表示標準裝置顯示器
mov cx,9//輸出9個位元組
int 21h
摘錄 彙編檔案字尾 s 與 S
一 大小寫字尾的區別 s 組合語言源程式 彙編 s 組合語言源程式 預處理,彙編 小寫的s檔案,在後期階段不在進行預處理操作,所以我們不能在這裡面寫預處理的語句在裡面 大寫的s檔案,還會進行預處理 彙編等操作,所以我們可以在這裡面加入預處理的命令 二 編譯的相關流程 預處理 pre processi...
彙編學習(十五)X86彙編學習 2 MBR為例
我們從 組合語言 的坑爬出來,又進入到了 實模式到保護模式 的坑中。mbr 計算機開機加電自檢之後,bios 就就嘗試讀取0面0道1扇區的內容,傳統上就是主引導扇區mbr共512b 以0x55 和 0xaa結尾。如下 mov ax,0xb800 指向文字模式的顯示緩衝區 mov es,ax 以下顯示...
每天都要打魚 閱讀摘錄2
2005年3月1日 性格是怎樣決定命運的 一位日本的心理學大師說過一句話 心理變,態度亦變 態度變,行為亦變 行為變,習慣亦變 習慣變,人格亦變 人格變,命運亦變。換句話說,乙個人要想運勢好,他的性格首先要好。你不能總是讓別人跟你在一起不舒服,這樣做人就缺少親和力,所以人在有自知之明之後能夠像古人說...