kategória | ||||||||||
|
||||||||||
|
||
Fonstosabb Assembly utasítások (adatmozató, aritmetikai, vezérlésátadási)
Az Assembly egy alacsony szintû
programozási nyelv, filozófiája közel áll a gépi kódú programozáshoz. Ennek
megfelelõen az Assembly utasítások egy-e 636i85g gy gépi kódú utasítás
szimbolikus megfogalmazásai (ún. 1-1 típusú nyelv, lásd Programozási nyelvek
története). Az Assembly nyelven történõ programozás során a gépi logikát
kell követnünk, a problémát a lehetõ legalapvetõbb lépésekre kell
lebontanunk. Ennek megfelelõen alakították ki az Assembly nyelv
utasításait is, amelyek a következõ csoportokra bonthatók (a teljesség
igénye nélkül):
- Adatmozgató utasítások
- Aritmetikai utasítások
- Vezérlésátadó utasítások
Az adatmozgató utasítások:
A magasszintû programozási nyelvek
értékadó utasításához hasonló utasítások. A különbség, hogy a magasszintû
nyelvek értékadó utasításai több gépi kódú utasítást reprezentálnak, lehetséges
az áttételes értékadás, az Assembly adatmozgató utasítása csak közvetlen
értékadásra alkalmas, ha közvetett értékadásra van szükségünk (pld egyes
regiszterek esetén), akkor több utasítást kell alkalmaznunk. Az adatmozgató
utasítás a mov utasítás. Szintaxisa: MOV op1, op2
Segítségével regiszterek és memóriaváltozó értékét változathatjuk meg. Az
elsõ operandus határozza meg a regiszter, vagy a memóriaváltozó
azonosítóját, a második operandus az értéket.
Az elsõ operandus kötelezõen regiszter vagy memóriaváltozó kell
legyen, soha nem lehet konstans értéket megadni (logikus). Az elsõ
operandus által meghatározott változó vagy regiszter kapja meg a második
operandus által meghatározott értéket.
A második operandus lehet memóriaváltozó, regiszter, kifejezés vagy konstans
érték egyaránt. Ez az operandus határozza meg az elsõ operandus értékét,
tehát a második operandus által meghatározott értéket fogja kapni az
elsõ operandus. Példa:
Az AX regiszter értékét állítsuk be 10-re.
mov ax, 10
A DI regiszterbe tegyük át az AX által tárolt
értéket:
mov di, ax
Valt1 memoriaváltozó értékét változtassuk meg
30-ra:
mov valt1, 30
A DX regiszter értékét állítsuk be 41-re egy
kifejezés segítségével:
mov dx, 30+11
A második példát szándékosan fogalmaztam így,
mivel az index regiszterek (DI, SI) csak közvetett módon kaphatnak értéket, a
mov di,10 utasítás hibához vezet.
A kifejezések alkalmazásakor figyelni kell arra, hogy a kifejezések értékét még
fordítási idõben meg tudja határozni a fordító.
Találat: 1557