ورود

View Full Version : سوال (اسمبلی)



areeef
پنج شنبه 03 دی 1394, 17:35 عصر
از اساتید تقاضا داشتم کد زیرو چک بکنند، قرار اگر کاربر 2 وارد کرد وارد ref بشه ، حالا اگر غیر 2 وارد کنند وارد noy نمیشه میخواستم ببینم دلیلش چیه و کجاش مشکل داره. تشکر


Str db 'OK $'
Ctr db 'NO $'


mov ah,01H
int 21h


sub al,48
cmp al,2
jnz ref

ref :
Mov dx,offset Str ; or Lea dx,Message
Mov ah,9h
Int 21h

jz noy

noy :
Mov dx,offset Ctr ; or Lea dx,Message
Mov ah,9h
Int 21h

masoud.8086
پنج شنبه 03 دی 1394, 20:32 عصر
خط 11 به حای ref بذار noy

areeef
پنج شنبه 03 دی 1394, 21:08 عصر
خط 11 به حای ref بذار noy

مشکل حل شد باید end هم میزاشتم، یک سوال دیگه دارم تو کد بالا کارکتر o در ok رو چاپ نمیکنه مشکل از چی هست، کارکتر دیگه میزارم چاپ میکنه (emu8086)

و اینکه در کد پایین اگر 1 وارد کنم بازم وارد ref میشه ، این زیرو فلگ گیر داده بدجور!!!! نمیدونم کجاش گیره. در حالی که zero flag صفر هست.


Str db 'Ko $'
Ctr db 'NO $'


mov ah,01H
int 21h

sub al,48
cmp al,2
jnz ref

ref:
Mov dx,offset Str ; or Lea dx,Message
Mov ah,9h
Int 21h
jmp end


Mov dx,offset Ctr ; or Lea dx,Message
Mov ah,9h
Int 21h
jmp end


end:
end

masoud.8086
دوشنبه 07 دی 1394, 20:11 عصر
دوست عزیز توی شرط اشتباه کردی.. اگر میخوای با این کد برنامت کار کنه بعد از خط ده بنویس jmp به خط 18