匯程式設計序的簡化寫法

2021-09-21 03:29:00 字數 1090 閱讀 7586

【說明】組合語言提供了段定義等的簡化寫法的偽操作,可以使**寫得更簡略一些。要將組合語言作為工作語言使用的同學,可以在這一方面找資料深入一些

【案例】輸出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 ...