- Κώδικας: Επιλογή όλων
SECTION .data ;data section.
nl db 10,13,'$'
message1 db 'Please enter a string: $'
buf db 20
actlen db ?
store db 20 dup ('$')
buf1 db 20
actlen1 db ?
store1 db 20 dup ('$')
SECTION .text ;code section.
global main
main:
PUBLIC _length
EXTRN _asm2pas:PROC
mov eax,@data
mov eds,eax
mov eah,09h
lea edx,message1 ;emfanizei to 1 mnm
int 21h
mov eah,0eah
lea edx,buf ;diabazei to string
int 21h
lea edx,store1 ;push store1
push edx
lea edx,store ;push store
push edx
CALL _asm2pas
mov eax, 4C00h
int 21h
;-------------------------------------------
_length proc
push ebp
mov ebp,esp
mov edi,[ebp+4]
mov ebx,0
lab:
cmp ecl,0Dh
je telos
mov ecl,store[ebx+1]
inc ebx
jmp short lab
telos:
mov eax,ebx
pop ebp
ret
_length endp
κοιταξτε δεν εχω δουλεψει ποτε σε X86 nasm 32 bit γι αυτο ο κωδικας μου εχει πολλα λαθη
τι πρεπει να τροποποιησω στις εντολες ετσι ωστε να ειναι σωστω το προγραμμα μου
ξερω το βασικο οτι οι καταχωρητες γενικου σκοπου ax,bx,cx,dx απο 16 bit για 32 bit ειναι eax,ebx,ecx,edx
πως γινεται να παρω το μισω του eax οπως γινοταν σε 16 bit δηλ. ah ή al για τον ax σε 16bit
για 32 bit πως γινεται αυτο?
γι αυτο μπερδευομαι γιατι δεν ξερω τα βασικα αμα μπορει καποιος να με καθοδηγηση λιγακι
σας ευχαριστω πολυ
Η ζωή είναι κενή χωρίς ιδέες. Δεν υπάρχει μεγαλύτερη χαρά από τον αγώνα στο όνομά τους.
Φιντέλ Κάστρο Ρους
31 Ιούλη του 2007