PDA

View Full Version : مبتدی: سوال : چند برنامه به زبان اسمبلی



5hahab
سه شنبه 05 خرداد 1394, 20:14 عصر
میخواستم بدونم برنامه هایی که نوشتم درست هستش یا نه ؟ اگر درست نیست ممنون میشم اصلاح کنید و بگید مشکلش کجا بود جواب شش رو هم بلد نیسم فقط اگر کسی بلده بنویسه ممنون میشم

1.برنامه‌اي بنويسيد که يک عدد از ورودي دريافت کند و 2 برابر آن‌ را در خروجي‌ نمايش دهد


.model small
.data
.code
mov ax,10
mov ax,2
mov al,dl
call print
mov ah,ch
int 21h
print:


2.برنامه‌اي که 2 عدد از ورودي دريافت کرده و حاصل جمع آن‌‌ها در خروجي نمايش دهد


.model small
.data
.code
mov ax,10
mov bx,10
add ax,bx
mov al,dl
call print
mov ah,ch
int 21h
print:


3.برنامه‌اي 2عدد از ورودي دريافت کند و حاصل ضرب آن‌‌ها را در خروجي‌ نمايش دهد


.model small
.data
.code
mov ax,5
mov bx,7
mul ax,bx
mov al,dl
call print
mov ah,ch
int 21h
print:


4.برنامه‌اي که 2 عدد از ورودي دريافت و بزرگترين را در خروجي‌ نمايش دهد


.model small
.data
.code
max de
mov ax,z
mov bx,n
cmp ax,bx
jae next1
next1: ja next2
next2:


5.برنامه‌اي که 10 عدد از ورودي دريافت و بزرگترين را در خروجي‌ نمايش دهد


.model small
.data
.code
max ch
mov cx,10
lea bx,n
mov ax,bx
str: cmp ax,(bx)
jna next
mov ax,(bx)
next: add bx,1
loop str
mov max,ax


6.برنامه‌اي که 10 عدد از ورودي دريافت و آن‌‌ها را مرتب کند و در خروجي‌ نمايش دهد

masoud.8086
چهارشنبه 06 خرداد 1394, 10:33 صبح
سلام برنامه 1و4 و5مشکل داره
1: باید مقداری رو برابر با 2 قرار دهید و در ax ضرب کنید نه انتقال..
4:برنامه درست هست فقط وقتی عدد بزرگتر رو پیدا میکنی باید بری چاپش کنی و اگر عدد بزرگتر از اولی نبود باید بری اون یکی رو چاپ کنی
5: کلیت برنامه درست هست اما وفتی مقدار max پیدا میکنی و داخل ax نگه داری میشه دور بعد مقدارش از بین میره چون داری دوباره مقدار bx رو میریزی داخلش برای رفع مشکل عددو بریز تو ی متغییر کمکی ..
در مورد سوال 6 هم برای مرتب سازی چند روش وجود داره ولی راحت ترین راه اینه بیای دو به دو مقایسه کنی. دوتا حلقه تو در تو لازم داری هر بار که حلقه بیرونیت یک بار تکرار بشه یکی از اعدادت مرتب میشه روش کار هم اینه بیای عنصر اول رو با عناصر دیگه مقایسه کنی و جاشو پیدا کنی دوره بعد بیای عدد دوم رو با بقیه مقایسه کنی و مرتبش کنی و همین طور تا اخر..
موفق باشی..