HighLevel in ASM. Tutorial?
-
Es gibt in ASM ja auch schon länger die möglichkeit Strukturen anzulegen oder das Makro LOCAL das sind ja alles Dinge die den ASM näher an High-Level heranbringen sollen.Wisst ihr wo ich so etwas wie ein Tutorial oder eine zusammenfassung mit kruzem Beispiel zu solchen High-Level Ergänzungen finden kann??(Auch speziell zu diesen,aber eher allgemein)
-
ich würde mal sagen das liegt ganz stark daran, welchen assembler du benutzt., also z.B. masm, nasm, tasm etc.
-
Mein Nasm ist sehr bockig,der geht net.
Mein Masm ist brav,der geht.
Mein Tasm ist sehr brav,der geht wunderbar.also falls es einer weis wie das da geht,am liebsten für tasm oder für masm
-
TASM verwendet die geleichen Assembler-Direktiven wie sie von MASM vorgegeben werden. NASM verwendet aber eigene. Beispiel Macrodefinition geht unter NASM glaube ich so:
%macro 0
;das macro
%endmacro
-
sowas ist echt schwer zu finden. musste auch erstmal ne weile suchen.
such doch mal nach TASM OOP oder sowas bei google.
hier schon mal was um deine geschmacksnerven anzuregen, ein wenig OOP mit TASM:ideal locals @@ model tiny, pascal p386 STRUC pixel GLOBAL METHOD { set : word = set_pixel get : word = get_pixel } x dw ? y dw ? col db ? ends pixel STRUC pixel2 GLOBAL METHOD { } x dw ? y dw ? z dw ? ends pixel2 CODESEG org 100h main: push cs pop ds mov ax,13h int 10h CALL p METHOD pixel:set, offset p CALL p1 METHOD pixel:set, offset p1 CALL p METHOD pixel:get, offset p,170,110 CALL p METHOD pixel:set, offset p mov ah,08h int 21h mov ax,03h int 10h ret proc set_pixel USES es di ax bx dx, STRUCOFS : word push 0a000h pop es mov di,[STRUCOFS] mov ax,320 mul [(pixel ptr di).y] add ax,[(pixel ptr di).x] mov bx,ax mov al,[(pixel ptr di).col] mov [es:bx],al ret endp proc get_pixel USES es di ax bx dx, STRUCOFS,@@x,@@y : word push 0a000h pop es mov di,[STRUCOFS] mov ax,320 mul [@@y] add ax,[@@x] mov bx,ax mov al,[es:bx] mov [(pixel ptr di).col],al ret endp p : pixel { x = 160, y = 100, col = 15 } p1 : pixel { x = 170, y = 110, col = 2 } end main