Sie sind auf Seite 1von 20

‫מחרוזות להצגה‬

.DATA
TimePrompt DB 'Is it after 12 noon (y/n)?',13,10,':$'
GoodAfternoonMessage DB 13,10
DB 'Good afternoon, world!',13,10,'$'
GoodMorningMessage DB 13,10
DB 'Good morning, world!',13,10,'$'
1 ‫הצג – אופן‬
MOV AH,9
MOV DX,OFFSET TimePrompt
INT 21h
2 ‫הצג – אופן‬
MOV AH,9
LEA DX, TimePrompt
INT 21h
‫‪)(Getch‬‬
‫‪MOV‬‬ ‫‪AH,1‬‬
‫‪INT 21h‬‬

‫קוד ה‪ ascii -‬של התו הנקלט יכנס לאוגר ‪.AL‬‬


‫המרות מתו לספרה‬
‫קודי ‪ ascii‬של הספרות הם רציפים החל מ‪H 30 -‬‬

‫'‪'9‬‬ ‫'‪'8‬‬ ‫'‪'7‬‬ ‫'‪'6‬‬ ‫'‪'5‬‬ ‫'‪'4‬‬ ‫'‪'3‬‬ ‫'‪'2‬‬ ‫'‪'1‬‬ ‫'‪'0‬‬

‫‪h39 h38 h37 h36 h35 h34 h33 h32 h31 h30‬‬

‫מה נדרש על מנת לקבל מהתו את הערך המספרי שלו?‬


‫ המשך‬-‫המרות‬
'9' '8' '7' '6' '5' '4' '3' '2' '1' '0'
h39 h38 h37 h36 h35 h34 h33 h32 h31 h30

0 h30 -h 30
1 h30 -h 31
5 h 30 -h 35
8 h 30 -h 38
9 h 30 -h 39
‫ המשך‬-‫המרות‬
MOV AH,1 ‫'דרך א‬
INT 21h
SUB AL,30h

MOV AH,1 ‫'דרך ב‬


INT 21h
SUB AL,’0’
‫בדיקת קלט‬
‫‪MOV AH,1‬‬
‫‪INT 21h‬‬
‫’‪CMP AL,’0‬‬
‫צא למקום שגוי‬
‫’‪CMP AL,’9‬‬
‫צא למקום שגוי‬
‫הגעת לכאן ‪ --‬משמע הקלט תקין‬
‫’‪SUB AL,’0‬‬
‫סינון שגיאות‬
‫‪MOV AH,1‬‬
‫‪INT 21h‬‬
‫’‪CMP AL,’0‬‬
‫צא למקום שגוי‬
‫’‪CMP AL,’9‬‬
‫צא למקום שגוי‬
‫הגעת לכאן ‪ --‬משמע הקלט תקין‬
‫‪data_ok:‬‬
‫’‪SUB AL,’0‬‬

‫‪data_not_ok:‬‬
‫סינון שגיאות‬
‫‪MOV‬‬ ‫‪AH,1‬‬
‫‪INT 21h‬‬
‫‪CMP‬‬ ‫’‪AL,’0‬‬
‫צא למקום שגוי‬
‫‪CMP‬‬ ‫’‪AL,’9‬‬
‫צא למקום שגוי‬
‫הגעת לכאן ‪ --‬משמע הקלט תקין‬
‫‪data_ok:‬‬
‫‪SUB‬‬ ‫’‪AL,’0‬‬
‫‪ .1‬היכן לשים את הטיפול בשגיאה‬
‫‪ .2‬איך לדלג על הטיפול בנתונים תקינים‬
‫‪data_not_ok:‬‬
?‫האם‬
CMP AL,'y'
JE IsAfternoon
CMP AL,'Y‘
JE IsAfternoon

‫?האם יש עוד קפיצות‬


‫זכרון‬
‫‪Var1‬‬ ‫‪DW 0‬‬
‫‪PromptStr‬‬ ‫'‪DB 'Enter 4 digit number:',13,10,'$‬‬
‫‪ResultStr‬‬ ‫'‪DB 13,10,'XXXX + 1: XXXX',13,10,'$‬‬
‫‪Ten‬‬ ‫‪DW 10‬‬

‫יכול לשבת בזכרון משתנה בגודל בית ‪ /‬מילה‬ ‫•‬


‫שיש בו מידע או ששומר מקום למידע עתידי‪.‬‬ ‫•‬
‫יכולה להיות בזכרון מחרוזת למטרת מתן הוראות‬ ‫•‬
‫יכולה להיות מחרוזת ששומרת מקום למידע עתידי‪.‬‬ ‫•‬
‫פניות לזכרון‬
Var1 DW 0
PromptStr DB 'Enter 4 digit number:',13,10,'$'
ResultStr DB 13,10,'XXXX + 1: XXXX',13,10,'$'
Ten DW 10

.‫ ויש לו כתובת‬byte‫• במחרוזת כל תו יושב ב‬


?ResultStr ‫• מה מטרת‬
? ResultStr[2] ‫• מיהו‬
‫כפל‬
‫‪MUL Ten‬‬ ‫נכתב‬

‫‪Ten‬‬ ‫‪DW 10‬‬ ‫מוצאים כי מוגדר‬

‫מי משתתף בפעולת הכפל?‬


‫כללי הכפל‬
‫• הפקודות לכפל‪MUL operand:‬‬
‫(עבור מספרים מסומנים) ‪IMUL operand‬‬

‫תוצאה‬ ‫נכפל‬ ‫הקיים כופל‬


‫בפקודה‬
‫‪AX‬‬ ‫‪AL‬‬ ‫‪ byte‬בגוף‬
‫הפקודה‬
‫‪DX:AX‬‬ ‫‪AX‬‬ ‫‪ word‬בגוף‬
‫הפקודה‬
‫חילוק‬
‫‪DIV Ten‬‬ ‫נכתב‬

‫‪Ten‬‬ ‫‪DW 10‬‬ ‫מוצאים כי מוגדר‬

‫מי משתתף בפעולת החילוק?‬


‫כללי החילוק‬
‫• הפקודות לכפל‪DIV operand:‬‬
‫(עבור מספרים מסומנים) ‪IDIV operand‬‬

‫שארית מנה‬ ‫מחולק‬ ‫מחלק‬

‫‪AL‬‬ ‫‪AH‬‬ ‫‪AX‬‬ ‫בגוף‬ ‫‪byte‬‬


‫הפקודה‬

‫‪AX‬‬ ‫‪DX‬‬ ‫)‪DX:AX ( hi:lo‬‬ ‫בגוף‬ ‫‪word‬‬


‫הפקודה‬
‫תוצאה‬ ‫נכפל‬ ‫הקיים כופל‬
‫בפקודה‬

‫‪AX‬‬ ‫‪ byte‬בגוף הפקודה ‪AL‬‬

‫‪DX:AX‬‬ ‫‪ word‬בגוף הפקודה ‪AX‬‬


MOV ‫פקודות נוספות‬
?‫מה ההבדל בין השנים‬
• MOV Var1,AX
• MOV AX,Var1

• MOV ResultStr[4],AL
• MOV ResultStr[12],DL
• MOV DX,OFFSET ResultStr
‫חיבור‬- ‫פקודות נוספות‬
• ADD AX,Var1
• ADD Var1, AX

• ADD DL,'0‘
• INC AX

Das könnte Ihnen auch gefallen