Mitä tämä koodin pätkä oikein tekee annetulle pointterille?
;****************************
;* *
PUBLIC INCR_PTR
INCR_PTR PROC NEAR
;* *
;****************************
;* *
;* In: Pointer value
;* *
;****************************
MOV EAX, DWORD PTR [ESP 4] ;offset
MOVZX EDX, WORD PTR [ESP 12] ;segment
ADD EAX, DWORD PTR [ESP 8] ;offset
RET 12
INCR_PTR ENDP
;****************************
;* *
PUBLIC INCR_PTR
INCR_PTR PROC NEAR
;* *
;****************************
;* *
;* In: Pointer value
;* *
;****************************
MOV EAX, DWORD PTR [ESP 4] ;offset
MOVZX EDX, WORD PTR [ESP 12] ;segment
ADD EAX, DWORD PTR [ESP 8] ;offset
RET 12
INCR_PTR ENDP
Vastaukset 2
Vanhimmat
Ei kyllä mitään, joskus tuolla x86 assemblerilla on tullut tehtyä semmoinen simppeli ohjelma joka tulostaa jonki "Hello World" tekstin, mut muuten kyllä haihtunu kaikki tieto....
Ainniin, DOS peleissä tuli tuo tuplapuskurointi toteutettua asm:lla &)
aliohjelman parametrit
arg1 => ESP 4
arg2 => ESP 8
arg3 => ESP 12
palauttaa
EAX = arg1 arg2
EDX = arg3 & 0xFFFF // alimmat 16 bittiä