Zum Inhalt springen

Perfiliev

Mitglieder
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Beiträge von Perfiliev

  1. Hallo Jens,

    pcode.pas

    PCODE.7z ñêà÷àòü ñ Ôàéëû@Mail.Ru

    var1 = 10
    
    var2 = 1
    
    
    if var1 = var2
    
      showmessage("ist 5")
    
    elseif var1 = var2
    
      showmessage("ist nicht 5")
    
    endif
    asm code:
    BITS 32
    
    cpu 486
    
    
    extern _exit, _show_message
    
    extern _set_vergleichswert_A1, _set_vergleichswert_A2, _set_vergleichswert_bychar
    
    extern _vergleiche_cmpeq
    
    
    @var_var1: dd 10
    
    @var_var2: dd 1
    
    @Pshow_message0: db "ist 5",0
    
    @Pshow_message1: db "ist nicht 5",0
    
    
    
    segment .text
    
    global _start_main
    
    _start_main:
    
    	push ebp
    
    	mov ebp, esp
    
    	push dword [@var_var1]
    
    	push dword [@var_var2]
    
    	call _set_vergleichswert_byvar
    
    	add esp,8
    
    	call _vergleiche_cmpeq
    
    	cmp eax, 1
    
    	jne near Le0
    
    	push @Pshow_message0
    
    	call _show_message
    
    	add esp,4
    
    	jmp near Lj0
    
    Le0:
    
    	push dword [@var_var1]
    
    	push dword [@var_var2]
    
    	call _set_vergleichswert_byvar
    
    	add esp,8
    
    	call _vergleiche_cmpeq
    
    	cmp eax, 1
    
    	jne near Le2
    
    	push @Pshow_message1
    
    	call _show_message
    
    	add esp,4
    
    	jMP near Lj2
    
    Le2:
    
    	jmp near Lj2
    
    Lj2:
    
    	jmp near Lj0
    
    Lj0:
    
    	push dword 0
    
    	call _exit
    
    	leave
    
    	ret
    
    

    mfg

    Sergey

  2. Hallo Jens,

    zuerst habe ich falsch verstanden, dass vergleiche_cmpeq pascal-call ist und zwei args hat.

    Jetzt habe ich set_vergleichswert_byvar vergleiche_cmpeq gesehen. Beide sind C-call.

    Dann ist dieses Code ganz richtig:

    ...

    push dword [@var_var1]

    push dword [@var_var2]

    call _set_vergleichswert_byvar

    add esp, 8

    call _vergleiche_cmpeq

    cmp eax, 1

    jne near Le0

    ...

    Und nicht wie:

    push @Pshow_messageXXX

    call _show_message

    sondern, so:

    push @Pshow_messageXXX

    call _show_message

    add esp,4

    Wenn _show_message auch C-call ist.

    Wenn ich später Zeit habe,dann versuche ich dir helfen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...