undefined symbol

yhaim

New member
undefined symbol

כתבתי תוכנית באסמבלי . התוכנית: model small .stack 100h .data ten equ 10 num db (0) msg db 'enter a number:$' .code mov ax,@data mov ds,ax mov dx,offset msg mov ah,9 int 21h call scan call dec2bin mov ah,4ch int 21h ;****************************scan number****************************** scan: mov dh,ten mov si,0 again: mov ah,7 int 21h cmp al,'0' jb notnum cmp al,'9' jg notnum mov dl,al mov ah,2 int 21h inc si sub al,'0' mov dl,al mov al,num mul dh add al,dl mov num,al notnum: cmp si,2 jne again ret end ;*******************************dec2bin******************************* dec2bin: mov bl,2 mov cx,'*' push cx mov ax,0 mov ax,num again: div bl push ax mov ah,0 cmp al,0 jne again ;*******************************print num****************************** print: pop ax cmp al,'*' jnz cont jmp sof cont:mov dl,ah add dl,'0' mov ah,2 int 21h jmp print sof: ret end הקומפיילר נןתן את ההודעה: undefined symbol: dec2bin מישהו יודע מה הבעיה?
 

voguemaster

New member
ככה

תגדיר את scan ו-dec2bin בתור proc עם כל מה שמשתמע (endp בסוף בעיקר
, אבל return כמובן..). תלמד איך כותבים פרוצדורות, זה יעזור לך בהמשך. דבר נוסף, אם אתה משתמש ב-data. כדי לציין את ה-DATA של התוכנית שלך אז אין צורך ממש בלטעון את הכתובת של ה-data seg ל-AX ואז להעביר ל-DS. זה לא נחוץ בכלל, זה אמור להיות מבוצע אוטומטית. (לכן קוראים לזה simplified segment directive).
 
למעלה