Papp Róbert

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

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

Aritmetikai és velük kapcsolatos parancsok

ADD op1,op2;op1<-op1+op2ÖsszeadásADD
ADC op1,op2;op1<op1+op2+CFÖsszeadás átvitellelADd with Carry
SUB op1,op2;op1<-op1-op2KivonásSUBtract
SBB op1,op2;op1<-op1-op2-CFKivonás átvitellelSuBtract with Burrow
NEG op;op<- -opElőjelváltásNEGation
INC op;op<- op+1NövelésINCrement
DEC op;op <- op-1CsökkentésDECrement
MUL op;Ha op 8 bites,
    AX <- AL * op
;Ha op 16 bites,
    (DX:AX)<- AX * op
SzorzásMULtiplication
IMUL op;ugyanaz, mint a MUL, csak előjelesElőjeles szorzásInteger/sIgned MULtiplication
DIV op;Ha az op 8 bites,
    AL <- AX/op, AH <- AX % op
;Ha az op 16 bites,
    AX <- (DX:AX)/op, DX <- (DX:AX) % op
OsztásDIVision
IDIV;ugyanaz, mint a DIV, csak előjelesElőjeles osztásInteger/sIgned DIVision
CBW;AX <- ALElőjeles kiterjesztés 8-ról 16 bitreConvert Byte (8) to Word (16)
CWD;(DX:AX) <- AXElőjeles kiterjesztés 16-ról 32 bitreConvert Word (16) to Double word (32)
CLC;CF<-0Átvitel bit törléseCLear Carry flag
STC;CF<-1Átvitel bit beállításaSeT Carry flag
CMC;CF<- NOT CFÁtvitel bit negálásaCoMplement Carry flag

Feladatok

1. feladat (AX * 3)

Bemenet: 
	AX
Kimenet: 
	AX = AX * 3
Megoldás:
MOV BX,3
MUL BX

2. feladat (A + B)

Bemenet: 
	A: (DX:AX)
	B: (CX:BX)
Kimenet: 
	C: (DX:AX) = A + B
Megoldás:
ADD AX,BX
ADC DX,CX

3. feladat (A - B)

Bemenet: 
	A: (DX:AX)
	B: (CX:BX)
Kimenet: 
	C: (DX:AX) = A - B
Megoldás:
SUB AX,BX
SBB DX,CX

4. feladat (A + 4 * B)

Bemenet: 
	A: AL
	B: BL
Kimenet: 
	C: AX = A + 4 * B
Megoldás:
MOV BH,4
XCHG AL,BL
MUL BH
;Vagy ez...:
ADD AX, WORD PTR BL
;...vagy ez:
XOR BH,BH
ADD AX,BX

5. feladat (A + B)

Bemenet: 
	A dd ...
	B dd ...
Kimenet: 
	C dd ... = A + B
Megoldás:
;Nem jó mert little endian:
MOV DX, WORD PTR A
MOV AX, WORD PTR A+2
;Így már jó:
MOV AX, WORD PTR A
MOV DX, WORD PTR A+2
ADD AX, WORD PTR B
ADC DX, WORD PTR B+2
MOV WORD PTR [C+2], DX
MOV WORD PTR [C], AX

6. feladat (A / B)

Bemenet: 
	A: előjeltelen bájt
	B: előjeles bájt
Kimenet: 
	C: bájt = A / B
Megoldás:
XOR AH,AH
MOV AL, A
IDIV B
MOV C, AL
© All rights reserved by TWiStEr & PaulikR. Köszönöm -[PaulikR]-nek a segítséget!