ورود

View Full Version : سوال: چطور از دستور jmp استفاده کنم



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 صبح
علیرضا جان خیلی خیلی ممنون کارم راه افتاد