برنامه پيدا كردن ماكسيمم به زبان اسمبلي

جهت طرح ابهامات و مشکلات درسی خود به این بخش مراجعه نمایید

مدیر انجمن: rosa_127

قفل شده
آواتار کاربر
mmiinnoo
کاربر ساده
کاربر ساده
پست: 16
تاریخ عضویت: یک‌شنبه 21 فروردین 1390, 11:51 am

برنامه پيدا كردن ماكسيمم به زبان اسمبلي

پست توسط mmiinnoo » سه‌شنبه 5 دی 1391, 8:05 pm

سلام
لطفا اگه كسي برنامه پيدا كردن ماكسيمم به زبان اسمبلي را بلده راهنماييم كنه
من خودم يه برنامه نوشتم ولي هميشه آخرين عدد را چاپ مي كنه

آواتار کاربر
peyman
مدیر کل
مدیر کل
پست: 1484
تاریخ عضویت: جمعه 10 فروردین 1386, 12:14 am
محل اقامت: MACS0647- JD
تماس:

Re: برنامه پيدا كردن ماكسيمم به زبان اسمبلي

پست توسط peyman » پنج‌شنبه 7 دی 1391, 2:39 am

کد: انتخاب همه

.MODEL SMALL
.DATA

    A   DW  9
    B   DW  21
    C   DW  3
   
    MAX DW  ?
    MIN DW  ?

.CODE
.STARTUP

    MOV AX, A
    MOV MAX, AX   ; MAX = A
    MOV MIN, AX   ; MIN = A
   
    MOV BX, B
    MOV CX, C
   
STEP1:
                          
    CMP BX, AX     ;IF(B > A
    JLE STEP2
   
    CMP BX, CX     ;&& B > C)
    JLE STEP2
   
    MOV MAX, BX    ;MAX = B  
    JMP STEP3
   
STEP2:

    CMP CX, AX     ;IF(C > A
    JLE STEP3
   
    CMP CX, BX     ;&& C > B)
    JLE STEP3
   
    MOV MAX, CX    ;MAX = C
   
STEP3:
   
    CMP BX, AX     ;IF(B < A
    JGE STEP4
   
    CMP BX, CX     ;&& B < C)
    JGE STEP4
   
    MOV MIN, BX    ;MIN = B
   
STEP4:                    

    CMP CX, AX     ;IF(C < A
    JGE STEP5
   
    CMP CX, BX     ;&& C < B)
    JGE STEP5

    MOV MIN, CX    ;MIN = C
   
STEP5:             

.EXIT
END        
;
; MAX = A
; MIN = A
;
; IF(B > A && B > C)
;   MAX = B
;
; IF(C > A && C > B)
;   MAX = C
;
; IF(B < A && B < C)
;   MIN = B
;
; IF(C < A && C < B)
;   MIN = C
;

کد: انتخاب همه


seg1 segment 

     a dw 3 

     b dw 5 

     c dw 4 

     min dw ? 

     max dw ? 

     sum dw 0 

     avg dw 0 

     seg1 ends 

 seg2 segment 

     Assume CS:seg2,DS:seg1 

     L:mov ax,seg1        

     mov ds,ax 

     

     ;shoroe jam shodan adad ba ham 

     

     mov ax,a 

     add ax,b 

     add ax,c 

     

     ; be dast avardane miyangin 

     

     mov sum,ax  

     mov bx,3 

     div bx 

     mov avg,ax 

     ;shoro mogayese barae taine min va max 

     mov ax,a 

     cmp ax,b 

     ja f1 

     mov ax,b 

     mov max,ax 

     mov cx,a 

     mov min,cx 

     cmp ax,c 

     ja f3 

     mov bx,c 

     mov max,bx 

     mov dx,sum 

     mov ax,avg 

     jmp end 

     

     f1:mov max,ax 

     mov bx,b 

     mov min,bx 

     mov cx,sum 

     mov dx,avg 

     cmp ax,c 

     ja f2 

     mov cx,c 

     mov max,cx 

     mov ax,sum 

     mov dx,avg 

     jmp end 

     

     f2:cmp c,bx 

     ja end 

     mov cx,c 

     mov min,cx 

     mov bx,avg 

     mov dx,sum 

     jmp end 

     

     f3:mov dx,avg 

     mov bx,c 

     cmp bx,min 

     mov bx,sum 

     ja end 

     mov min,bx 

     mov cx,sum 

     mov dx,avg 

     jmp end    

     

     end:mov ah,4ch 

     int 21h 

     seg2 ends 

 end L
...

آواتار کاربر
marall
پست: 7
تاریخ عضویت: دوشنبه 1 اسفند 1390, 4:52 pm

Re: برنامه چاپ طول کاراکتر گرفته شده به زبان اسمبلي

پست توسط marall » شنبه 9 دی 1391, 12:54 pm

سلام من یه برنامه ساده میخوام که یک رشته رو بگیره و طول آنرا چاپ کند.
ممنون goll

قفل شده