abb4ss
چهارشنبه 18 دی 1392, 22:01 عصر
دوستان توی این سوال چطور با استفاده از دستور jmp بتونم این برنامه رو تکمیل کنم؟؟؟
اینم سوال:
عددی از ورودی دریافت نمایید در صورتی که این عدد برابر 9 باشد برنامه ی صفحه 316 کتاب اجرا شود ، در صورتی که عدد 2 باشد برنامه ی صفحه 319 و در صورتی که برابر صفر باشد از برنامه خارج شود
من برنامه هارو جدا جدا نوشتم فقط نمیدونم چطور باید از دستور jmp استفاده کنم تا بشه با زدن این عدد ها به نتیجه رسید. ممنون میشم کمک کنید. با تشکر
alireza_s_84
چهارشنبه 18 دی 1392, 23:23 عصر
دوستان توی این سوال چطور با استفاده از دستور jmp بتونم این برنامه رو تکمیل کنم؟؟؟
اینم سوال:
عددی از ورودی دریافت نمایید در صورتی که این عدد برابر 9 باشد برنامه ی صفحه 316 کتاب اجرا شود ، در صورتی که عدد 2 باشد برنامه ی صفحه 319 و در صورتی که برابر صفر باشد از برنامه خارج شود
من برنامه هارو جدا جدا نوشتم فقط نمیدونم چطور باید از دستور jmp استفاده کنم تا بشه با زدن این عدد ها به نتیجه رسید. ممنون میشم کمک کنید. با تشکر
jmp پرش غیر شرطیه یعنی شما بدون هیچ قید و شرطی به لیبل مربوطه پرش میکنید و در این برنامه به کار شما نمیاد بلکه شما باید با استفاده از دستور cmp مقدار ورودی رو چک کنید و با استفاده از دستور je به لیبل مورد نظر پرش کنید
فقط برنامه های صفحات مورد نظر رو جایگزین کنید:
.MODEl <LARGE>
.STACK <100H>
.DATA
MSG db "Enter a number between 0 and 9: " ,"$"
MSG1 db "Page 316 Program's Run!",10,13,"$"
MSG2 db "Page 319 Program's Run!",10,13,"$"
MSG3 db "Go Next--->",10,13,"$"
Temp db ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG
MOV AH,09H
INT 21H
lbl_GetNumber:
MOV AH,08H
INT 21H
MOV Temp,AL
CMP AL,"0"
JB lbl_GetNumber
CMP AL,"9"
JA lbl_GetNumber
MOV DL,AL
MOV AH,02H
INT 21H
CMP DL,"0"
JE lbl_End
CMP DL,"2"
JE lbl_RunPage319
CMP DL,"9"
JE lbl_RunPage316
LEA DX,MSG
MOV AH,09H
INT 21H
JMP lbl_GetNumber
lbl_RunPage319:
LEA DX,MSG2
MOV AH,09H
INT 21H
JMP lbl_GetNumber
lbl_RunPage316:
LEA DX,MSG1
MOV AH,09H
INT 21H
JMP lbl_GetNumber
lbl_End:
MOV AH,04CH
INT 21H
MAIN ENDP
abb4ss
پنج شنبه 19 دی 1392, 09:06 صبح
علیرضا جان خیلی خیلی ممنون کارم راه افتاد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.