Papp Róbert

SZámítógép ARchitektúra jegyzet 2005/I.

(Bartók Tamás / Szerda 16:00-17:00)
5. gyakorlat - 2005. 10. 12.

A fordítás lépései

>tasm hello.asm
>tlink hello
Aki lusta beírni, az töltse le ezt a fájlt.

Adatmozgató utasítások

MOV op1, op2;op1 <- op2
XCHG op1, op2;op1 <-> op2
PUSH op;SP=SP-2, SS:SP <- op
POP op;op <- SS:SP, SP=SP+2
PUSHF;SP=SP-2, SS:SP <- FLAGS
POPF;FLAGS <- SS:SP, SP=SP+2
LEA reg, mem;reg <- mem, a FLAGS nem módosul (Load Effective Address)

Helló Világ á la ASM

model small                      ;Intel 8086-ra "butítás"
.stack                           ;veremhasználat engedélyezése

adat 	SEGMENT                  ;adat szemgens definiciója
szoveg  db      "Helló Világ!"   ;változó létrehozása, (define byte)
adat	ENDS                     ;adat szemgens vége

kod 	SEGMENT                  ;kód szegmens definiciója
        assume cs: kod, DS: adat ;szegmensek beállítása
                                 ;(ES: nothing, de ezt nem kötelező kiírni)
	
@start:
        MOV     AX,adat          ;adatszemgens-regiszter (DS),
                                 ;az egyiknek általános regiszternek kell
                                 ;lennie, ezért nem lehet "MOV DS, adat"
	MOV	DS,AX            ;beállítása 'adat'-ra
	MOV	BX,offset szoveg ;BX-be töltjük a szoveg offset címét
        XOR     SI,SI            ;kinullázzuk SI-t, ez lesz a számláló
        MOV     AH,14            ;INT 10h paraméterezése
@ciklus:
	MOV	AL,[bx+si]       ;karakter ASCII kódjának betöltese AL-be
	INT     10h              ;megszakítás, AL kiírása a kápernyőre
	LEA	SI,[SI+1]        ;SI léptetése 1-gyel (INC SI is jó)
	CMP	AL,'!'           ;végigértünk-e a stringen?
	JE	@vege            ;ha igen, akkor program vége
	JMP	@ciklus          ;egyébként folytatjuk a köv. karakterrel
@vege:
	MOV	AX,4c00h         ;INT 21h paraméterezése
	INT	21h              ;vezérlés visszaadása a DOS-nak
	
kod	ENDS                     ;kód szegmens vége
	END @start               ;itt adjuk meg, hogy hova adódjon a
                                 ;vezérlés a forrásfájl betöltése után

A fájl letölthető ANSI kódolásban itt, és OEM kódolásban itt.
© All rights reserved by TWiStEr & PaulikR. Köszönöm -[PaulikR]-nek a segítséget!