輸出hello world,visual studio可以執行的
.386 ; tells masm to use intel 80386 instruction set.
.model flat,stdcall ; flat memory model
option casemap:none ; treat labels as case-sensitive
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc
includelib c:\masm32\lib\kernel32.lib
include c:\masm32\include\user32.inc
includelib c:\masm32\lib\user32.lib
.data ; begin initialized data segment
msgboxcaption db "win32 assembly programming",0
msgboxtext db "hello world!!!welcome to asm programming under clr",0
.code ; beginning of code
start: ; entry point of the code
invoke messagebox, null, addr msgboxtext, addr msgboxcaption, mb_ok
invoke exitprocess, null
end start
西電的奔騰微機原理p304的**:
.dosseg;段次序按dos段次序約定排序
.model small;記憶體模組採用小模式,佔記憶體小,效率高
.486;採用486偽指令
.stack 300h;建立3*16*16=768個位元組的堆疊段
.data;以下存放near的有賦初值的資料,組名是dgroup
back db 2000 dup(' ');申請2000個位元組,存放的都是空格,注意''中間有空格
.code;以下存放**
start:;標識程式入口
myproc proc far;主過程模式是far,表示在段間
mov ds,ax;dgroup位址賦給ds和es
mov es,ax;ds是資料段暫存器,es是附加段暫存器
mov cx,08h;設定計數暫存器為8,等下loop的時候就可以迴圈8次
mov bl,00h;10h中斷寫串的時候設定背景,背景是黑色
;again: lea bp,back;load effective address(lea),把back的位址賦給基址指標暫存器
mov dx,0000;資料暫存器清零,注意mov時候的位數
mov ah,19 ;write string
;呼叫10h中斷來顯示字串時,各暫存器的作用如下:
;al = write mode, bh = page number, bl = color,cx = number of characters in string,
;dh = row, dl = column, es:bp = offset of string
mov al,1 ;設定寫串屬性string contains alternating characters and attributes
push cx;將迴圈次數暫時壓入堆疊中
mov cx,07d0h;07d0h是十進位制的2000,在10h中斷下表示寫2000個字元
int 10h;interrupt(int)呼叫中斷,10h是中斷號,一般和video services有關
;call delay;呼叫delay這個過程,call有near和far之分。調完就回到原來的地方繼續執行
;也可以在子過程中通過ret來跑回原來的地方。注意和jmp的區別
add bl,10h;背景色變更
pop cx;把存在棧中的計數器的值再要回來
loop again;cx若不等於0,則繼續迴圈回到again標識處執行指令
mov ax,4c00h
int 21h;呼叫21h中斷,ah是4c
myproc endp;結束主過程myproc
delay proc near;dealy子過程是near型
push dx
push cx
mov dx,10
p1:mov cx,0ff00h
p2:dec cx
jnz p1
pop cx
pop dx
ret;用ret返回到call;
delay endp
end start
簡單的匯程式設計序分析
section data section text globl start start movl 1,eax movl 4,ebx int 0x80 將這段程式儲存為hello.s,然後用彙編器as把匯程式設計序中的助記符翻譯成機器指令 彙編指令與機器指令是對應的 生成目標檔案hello.o。然後用...
最簡單的AT T匯程式設計序
把這個程式儲存成檔案start.s 匯程式設計序通常以.s作為檔名字尾 用彙編器 assembler as把匯程式設計序中的助記符翻譯成機器指令,生成目標檔案start.o as start.s o start.o 然後用鏈結器 linker,或link editor ld把目標檔案start.o鏈...
對乙個簡單匯程式設計序分析
程式 assume cs codesg codesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21h codesg ends end偽指令 偽指令是寫給編譯器看的,cpu不會執行,在源程式中,包括兩...