Assembly szöveg kiírás (MASM32)

Assembly szöveg kiírás (MASM32)
2011-07-02T23:06:06+02:00
2011-07-03T12:22:18+02:00
2022-11-22T09:15:36+01:00
dgffsg
Sziasztok!

Assemblyt most kezdtem el tanulni de máris problémába ütköztem: Nem tudom a helloworld szövegét kiíratni. Itt a forráskód:
Program Segment Para Use16 assume cs:Program,ds:Program,ss:Program org 100h _START: mov dx,offset string1 mov ah,09h INT 21h xor ax,ax int 16h RET ;Egyszerű kilépés ;-=-=-=-=-=-=-=Szubrutinok ;-=-=-=-=-=-=-=adatok/változók string1: db 'Hello Assembly World, my name is: dgffsg'$ Program Ends END _START
És a hiba:
C:\masm32\helloasmworld.asm(16) : error A2008: syntax error : db
Mutasd a teljes hozzászólást!
Egy masm32 tutorial szerint egy kiírásnak valahogy így kellene kinéznie:


.486 ; create 32 bit code .model flat, stdcall ; 32 bit memory model option casemap :none ; case sensitive include \masm32\include\windows.inc ; always first include \masm32\macros\macros.asm ; MASM support macros ; ----------------------------------------------------------------- ; include files that have MASM format prototypes for function calls ; ----------------------------------------------------------------- include \masm32\include\masm32.inc include \masm32\include\gdi32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc ; ------------------------------------------------ ; Library files that have definitions for function ; exports and tested reliable prebuilt code. ; ------------------------------------------------ includelib \masm32\lib\masm32.lib includelib \masm32\lib\gdi32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib .code ; Tell MASM where the code starts start: ; The CODE entry point to the program print chr$("Hey, this actually works.",13,10) exit end start ; Tell MASM where the program ends
Mutasd a teljes hozzászólást!

  • Kettőspont szerintem nem kell, a $ lehet, hogy a string végére kell és nem utána, és esetleg " a ' helyett.

    string1 db "Hello Assembly World, my name is: dgffsg$"
    Mutasd a teljes hozzászólást!
  • Köszi. Az assembling-en túl vagyok de most meg a linkernek van baja:
    helloasmworld.obj : fatal error LNK1190: invalid fixup found, type 0x0001
    Mutasd a teljes hozzászólást!
  • TASM-mel lefordul:
    tasm prog.asm tlink /t prog.obj
    A /t azt jelenti, hogy .com file-ot csinálsz
    Töltsd le a hunasm-ról!
    Mutasd a teljes hozzászólást!
  • Egy masm32 tutorial szerint egy kiírásnak valahogy így kellene kinéznie:


    .486 ; create 32 bit code .model flat, stdcall ; 32 bit memory model option casemap :none ; case sensitive include \masm32\include\windows.inc ; always first include \masm32\macros\macros.asm ; MASM support macros ; ----------------------------------------------------------------- ; include files that have MASM format prototypes for function calls ; ----------------------------------------------------------------- include \masm32\include\masm32.inc include \masm32\include\gdi32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc ; ------------------------------------------------ ; Library files that have definitions for function ; exports and tested reliable prebuilt code. ; ------------------------------------------------ includelib \masm32\lib\masm32.lib includelib \masm32\lib\gdi32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib .code ; Tell MASM where the code starts start: ; The CODE entry point to the program print chr$("Hey, this actually works.",13,10) exit end start ; Tell MASM where the program ends
    Mutasd a teljes hozzászólást!

  • ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ include \masm32\include\masm32rt.inc include \masm32\include\windows.inc ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ .data? value dd ? .data item dd 0 szoveg db "ez a szoveg",0 .code start: ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ print "szoveg tartalma:" invoke StdOut, addr szoveg ;vagy: ;print addr szoveg inkey exit ; ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ end start
    Mutasd a teljes hozzászólást!
  • Eddig megvan de az itt a baj hogy nekem windows xp-n nem mükszik vmiért a tasm úgyhogy marad a masm32.
    Mutasd a teljes hozzászólást!
  • Tökéletes, köszi!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd