שאלה באסמבלר

שאקל

New member
שאלה באסמבלר

איך ממירים מספר מhex לdec? נסיתי לכתוב אלגוריתם להמרה ולא הצלחתי. נגיד ויש לי באוגר al מספר הקסה דצימלי ובעזרת פסיקה אני רוצה להציג את המספר בדצימלי. איך עושים זאת? אשמח לעזרה.
 

שאקל

New member
שכחתי לכתוב

הכונה שלי היא להציג על המסך מספר ששמור לי בהקסה אבל להציג אותו על המסך בדצימלי. מישהו יודע איך עושים את זה? אם אני משתמש באלגוריתם מתימטי להמרה אז עדין אני שומר במחשב את המספר בהקסה וזה לא עוזר לי. אשמח לעזור.
 

micmuk

New member
שניה

לא הבנתי אותך יש לך מספר בזיכרון (מן הסתם הוא שמור בהקסה) ואתה רוצה להציג אותו בצורה דצימלית? נגיד לדוגמא: בזיכרון - 1A על המסך - 16 זאת הכוונה שלך?! אם כן.... אתה חייב לבנות אלגוריתם שעושה את זה... יש לי אלגוריתם כזה - אני רק צריכה לבדוק אם הוא שמור לי על המחשב הזה או על המחשב בבית... כבר חוזרת אליך עם האלגוריתם... מיק
 

micmuk

New member
sorry

אבל זה לא במחשב הזה - זה במחשב השני שלי אם בינתיים לא יענו לך על זה אני אחפש גם במחשב השני
 

nahsh

New member
עדיין לא ממש עזרה:

יש לי פונקציה בדיוק כזאת בבית, אבל בכל מקרה זה לא יהיה היום. חשוב שתבין משהו: מה ששמור לך בזכרון הוא לא בהקסה, אלא בבינארי, אבל גם זה לא חשוב. ערך הוא מוחלט, ומספר הוא רק שם. אם יש לך 16 תפוחים, זה לא משנה אם תקרא להם 16 תפוחים, 10H תפוחים, או 10000B תפוחים, עדיין יהיו לך בדיוק 16. המשמעות המעשית היא, שאתה אמור לקחת את הערך, ולקרא לו בשם, כלומר להציג אותו בצורה מסויימת. לערך אתה מתייחס כערך, לא כמספר.
 

twiti

New member
לא כל כך הבנתי את השאלה ?!

האם אתה רוצה להמיר מספר מ-hex ל-dec ורק לצורך תצוגה? או שמא אתה רוצה להדפיס hex למסך?
 

שאקל

New member
להדפיס למסך

אמרו לי היום שצריך להפעיל אלגוריתם שמפעיל תו תו. אם יש לי ברגיסטר al מספר בהקסה אני צריך להתייחס לכל 4 סיביות לחוד ולהפוך אותם למספר להציג במסך כתו.
 

dogood

New member
משהו בשביל להתחיל

מתוך הנחה שכל ארבע סיביות מיצגות סיפרה מ 0-9 ,במקרה כזה אתה צריך לבודד את ארבע הסיביות הרלונטיות לדוגמא ע"י הפעולת AND AL, 0F <- AND שמשאירה לך את ארבע הסיביות הימניות של האוגר דלוקות. לתוצאה שקיבלת אתה מוסיף את הערך 30 HEX או פשוט יותר להוסיף את התו ´0´ והתוצאה שתיתקבל תיתן לך את היצוג של הסיפרה כתו ASCII. יש עוד אבל אני משאיר לך קצת שתנסה לשבור תראש לבד.
 

שאקל

New member
כן

נסיתי אלגוריתם של BCD אבל זה לא עבד. אם יש לי באוגר al מספר בהקסה כמו 26 כשאני מציג אותו הוא מציג לי 26 ולא 38.
 

nahsh

New member
חבל שלא אמרת קודם

וBCD זה לא אלגוריתם. זו שיטה לשמירת ספרות בזכרון. אם הבנתי אותך נכון, דווקא הצלחת! אתה לא אמור לעשות שום המרה. הרעיון של BCD הוא כזה: שומרים כל סיפרה בניבל (4 ביטים) כך שערכו של ניבל, לא יכול לעלות על 9. הערך שנשמר הוא 26H, ונכון שזה שווה ל38, אבל לא זאת הכוונה. הכוונה היא דווקא כן ל26. זה בניגוד|שגדה| להודעה הקודמת שלי. לא|שגדה| מעוניינים כאן בערך האמיתי ששמור בזכרון, כי הוא כבר מיוצג בזכרון בצורה עשרונית.
 

שאקל

New member
הצלחתי

הצלחתי עכשיו לבצע את ההמרה ל-BCD. רק שאני לא מצליח עכשיו להציג את התוצאה שיש לי בal על המסך.
 
למעלה