16位的組合語言實現 」 hello world!「 的難度在於
1.了解int 21h 的9號中斷呼叫
①lea dx, 字串的開頭或mov dx, offset 字串的開頭
②mov ah, 09h
③int 21h
2. 在定義字串的時候要在末尾加上'$'作為字串的結束標誌。
3.源**:
data segment ;定義資料段
print db "hello world!", 0ah, 0dh, '$' ;定義乙個字串,以'$'結束
data ends ;定義資料段結束
stack segment stack ;定義堆疊段
dw 20 dup(0) ;為堆疊段分配空間
stack ends ;定義堆疊段結束
code segment ;定義**段
assume cs:code, ds:data, ss:stack ;告訴編譯器將段暫存器與符號對應起來
start: ;程式入口
mov ax, data
mov ds, ax ;將段位址data送入ds中
mov dx, offset print ;將字串位址送人dx中
mov ah, 09h
int 21h ;呼叫int 21h的9號中斷
mov ah, 4ch ;返回dos系統
int 21h
code ends ;定義**段結束
end start ;程式結束
4.程式輸出
5.值得注意的是在不同版本的編譯器下,可能會細微的差異。
組合語言實現階乘
static int fact int n return fact n 1 n public static void main string args 開始遞迴函式呼叫 addiu sp,0,0x10010080 初始化棧位址 壓棧入參 addiu s0,0,5 n 5 sw s0,0 sp n 5...
組合語言實現氣泡排序
氣泡排序 author jrh 2011.7.10 assume ds data data segment a dw 1,4,2,5,7,9,6,3 data ends code segment start mov ax,data mov ds,ax mov cx,8 dec cx lop1 pus...
MIPS組合語言實現選擇排序
mips組合語言實現排序演算法,其實並不難。只要你掌握了基本的指令語句,並且熟悉c或c 相關演算法,即可輕鬆寫出來。對於mips組合語言還不太熟悉的夥伴,可以參考下面這篇部落格 它的具體實現 如下 c include using namespace std int main num index nu...