【說明】組合語言提供了段定義等的簡化寫法的偽操作,可以使**寫得更簡略一些。要將組合語言作為工作語言使用的同學,可以在這一方面找資料深入一些
【案例】輸出hello world!
.8086
.model small
.data
str db 'hello world!$'
.stack 20h
.code
start: mov ax,@data
mov ds,ax
lea bx,str ;這兒簡單地用mov bx, 0將有邏輯錯誤。這取決於模式,請自行debug觀察
output:mov dl, [bx]
cmp dl, '$'
je stop
mov ah, 02h
int21h inc bx
jmp output
stop: mov ax,4c00h
int21hend start
下面的寫法,得到相同的執行結果:
assume cs:codesg, ss:stacksg, ds:datasg
stacksg segment
db 32 dup (0)
stacksg ends
datasg segment
str db 'hello world!$'
datasg ends
codesg segment
start: mov ax,datasg
mov ds,ax
mov ax, stacksg
mov ss, ax
mov sp, 20h
lea bx,str
output:mov dl, [bx]
cmp dl, '$'
je stop
mov ah, 02h
int 21h
inc bx
jmp output
stop: mov ax,4c00h
int 21h
codesg ends
endstart
匯程式設計序 退出
作為第乙個匯程式設計序,本程式除了退出以外,並沒有執行其他的功能。目的 退出並向linux核心返回乙個狀態碼的簡單程式 輸入 無 輸出 返回乙個狀態碼.在執行程式後可通過輸入echo 來讀取狀態碼 變數 eax儲存系統呼叫號 ebx儲存返回狀態 section data section text g...
微機匯程式設計序
又是自學的一學期,呵呵。學到最後也就知道零星半點指令吧,複雜的程式可能還是不怎麼會寫,熟練當然也不敵c了,但是彙編之於嵌入式,往上走肯定少不了遇到,學好還是必要的!此次僅作入門吧。今日所學,明日之用。1 統計正負零的個數 datas segment array db 1,2,1,0,2,0,2,4,...
匯程式設計序的Hello world
一 匯程式設計序的hello world x86 at t data msg ascii hello world,hello at t asm n len msg text global start start movl len,edx 顯示的字元數 movl msg,ecx 緩衝區指標 movl ...