PDA

View Full Version : SOS برنامه میانگین دو عدد (باینری - BCD)



minotum
سه شنبه 01 آذر 1384, 18:58 عصر
:لبخندساده سلام
من باید این برنامرو تا شنبه تحویل بدم
ولی دوتا مشکل دارم
یکی اینکه MASM من ورژن 11.6 گیر نیووردم
دوم اینکه با این MASM خودم همش ارور میده
اصل برنامه هم این هستش که دو تا برنامه باید بنویسم که:
از ورودی دوتا عدد رو بگیره و میانگین اون دو رو حساب کنه و در خروجی نمایش بده
فقط فرقشون اینه که تو یکی برای تبدیل باید از روش کد معادل باینری استفاده کنیم
در یکی دیگه از BCD
واقعا ممنون میشم
:چشمک:

MiRHaDi
چهارشنبه 02 آذر 1384, 23:25 عصر
سلام
اگه masm میخوای که تو اینترنت هست میتونی بگیری
اگه برنامه میخوای روش رو بهت میگم
دو تا عدد رو تا توابع داس (21) راحت میتونی بگیری بعد با هم جمع کنی و تقسیم بر 2 کنی ! اگر باقیمانده 1 بود به خروجی ".5" اضافه کن !
بای

aakh1361
پنج شنبه 03 آذر 1384, 02:05 صبح
با این MASM خودم همش ارور میده

خوب مشکل از کد شما هست نه کامپایلر
برنامه تون رو نشون بدید تا مشکلش رو پیدا کنیم

minotum
یک شنبه 06 آذر 1384, 13:21 عصر
از همه ممنونم
اون برنامه آخر درست شد
ولی masm رو از کجا میتونم بگیرم؟

minotum
یک شنبه 06 آذر 1384, 13:29 عصر
راستی کد اوت برنامه هارو میزارم تا اگه کس دیگه لازم داشت لنگ نمونه

minotum
یک شنبه 06 آذر 1384, 13:39 عصر
;------------ Barnameh hesab kardan miangin 2 adade 2 ragami
;------------ ba estefadeh az moadel bBCD
Data_here Segment
x DB ?
y DB ?
msg1 DB 0DH,0AH,'ENTER NUMBER ONE (2 CHARACTER):','$'
msg2 DB 0DH,0AH,'ENTER NUMBER TWO (2 CHARACTER):','$'
msg3 DB 0DH,0AH,'ANSWER IS:','$'
msg4 DB 0DH,0AH,'========OMID@MINOTUM========BCD','$'
Data_here ends

Code_here Segment
Assume CS:Code_here,DS:Data_here
Main Proc Far
Mov AX,Data_here ;active kardan data segment
Mov DS,AX
;------------ Titr Barnameh
Mov AH,09H
Mov DX,offset Msg4
int 21H
;------------ khnadan adad aval
Mov AH,09H
Mov DX,offset Msg1
int 21H
Mov AH,01H
Int 21H
Mov BL,AL
Int 21H
Sub AL,30H
Sub BL,30H
Mov CL,4 ;tabdil kardan adad be bcd geire feshorde
Shl BL,CL
Add BL,AL ;dar inja ragam aval be form bcd dar BL ast fagat kafi ast an ra ba AL jam konim
;----------- khandan adad dovom
Mov AH,09H
Mov DX,offset Msg2
int 21H
Mov AH,01H
Int 21H
Mov BH,AL
Int 21H
Sub AL,30H
Sub BH,30H
SHL BH,CL ;tabdil ragam aval be BCD
Add AL,BH ;AL=ragam dovom be form BCD
;----------- hesab kardan miangin


ADD AL,BL
DAA ;dar inja dastoor DAA mohtaviat AL ke haman hasel jam doadad be form bcd ast ra motabar mikonad

Mov BH,00H ;in dastoorat bayad bad az mov al,bl neveste mishod
ADC BH,00H ;vali chon dar zamane zarb carry avaz mishvad inja minevisim

Mov AH,AL
Mov CL,4
SHR AH,CL ;AH ra be count 4 be rast mibarim ta ragam aval be form geire feshorde dar AH garar girad
And AL,0FH ;AL ra ba 00001111 and mikonim ta ragam dovom be soorat geire feshorde dar AL garar Girad
AAD ;in dastor mohtaviat geire feshorde AH va AL ra be soorat Baineri Dar AL garar midahad
Mov BL,AL

Mov AL,100 ;momken ast jam do addad 3 ragami shavad yani ADC biavarad , pas an ra ham ezafe mikonim
Mul BH
ADD AL,BL

Mov AH,00H ;AH=0 => AX=AL
Mov BL,2
Div BL ;AX/2 => javab=AL

;------------ namayesh javab
Mov BX,AX
Mov AH,09H
Mov DX,offset Msg3
int 21H
Mov AX,BX
Mov AH,00H ;AX=AL
Mov BH,10
Div BH ;ragame aval=AL ragame dovom=AH
Add AL,30H
Add AH,30H
Mov BH,AH
Mov AH,02H
Mov DL,AL
Int 21H
Mov AH,02H
Mov DL,BH
Int 21H

MOV AH,4CH
INT 21H
Main EndP
Code_Here endS
END
END