ايران ويج

نسخه‌ی کامل: پروژه فوری
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان عزیز خسته نباشید یه برنامه می خواستم اگه میشه برام آماده کنید خیلی فوری هست مرسی
20 عدد را از ورودی بگیرد و در آرایه قرار دهد و سپس یک عدد دیگر بگیرد و چک کند آیا در آرایه وجود دارد یا خیر و سپس جمع اعداد وارد شده - میانگین - بزرگترین عدد و کوچکترین عدد را مشخص کند
(۰۷-دى-۱۳۸۹, ۱۶:۲۲:۰۶)q7a نوشته است: [ -> ]سلام دوستان عزیز خسته نباشید یه برنامه می خواستم اگه میشه برام آماده کنید خیلی فوری هست مرسی
20 عدد را از ورودی بگیرد و در آرایه قرار دهد و سپس یک عدد دیگر بگیرد و چک کند آیا در آرایه وجود دارد یا خیر و سپس جمع اعداد وارد شده - میانگین - بزرگترین عدد و کوچکترین عدد را مشخص کند

کد:
data segment
    ; add your data here!
    TEMP DB  20  DUP(?)
    STR  DB  'Please Enter number:','$'
    YES  DB  'YES number:','$'
    NO  DB  'NO number:','$'  
    BIG  DB  'BIG number:','$'  
    SMAL  DB  'SMAL number:','$'
    AVG  DB  'AVG number:','$'
ends


    MOV SI,0
    MOV CX,20
  
    L:
    
    MOV  AH,01H
    INT 21H
    
    MOV TEMP[SI],AL                          
    

    INC SI
    LOOP L
          
;-----------------------------------
          
    MOV  AH,09H      
    MOV  DX,OFFSET STR  
    INT 21H  
    
;-----------------------------------    
    MOV  AH,01H
    INT 21H  
          
          
    MOV BL,AL
;-----------------------------------    
    
    MOV SI,0
    MOV CX,20
  
    L4:
    
    CMP BL,TEMP[SI]
    JE L1
                          
    INC SI
    LOOP L4
    
    
    JMP L3
          
          
    
    L1:
    MOV  AH,09H      
    MOV  DX,OFFSET YES  
    INT 21H
      
      
    L3:
;-----------------------------------    
    
    
    L2:
    MOV  AH,09H      
    MOV  DX,OFFSET NO  
    INT 21H
    
;-----------------------------------    
    
    
    MOV SI,0
    MOV DL,0
    MOV CX,20
  
    L5:
    
    ADD DL,TEMP[SI]
                          
    INC SI
    LOOP L5
        
        
    MOV DH,0
          
          
    MOV  AX,DX
    MOV  BL,20
    DIV  BL
            
            
    MOV  AH,09H      
    MOV  DX,OFFSET AVG  
    INT 21H          
        
              
    MOV  AH,02H
    MOV  DL,AL
    INT  21H
;-----------------------------------
    
    
    MOV SI,1
    MOV DL,TEMP[0]
    MOV CX,20
  
    L6:
    CMP  DL,TEMP[SI]
    JA L7
                          
    INC SI
    LOOP L6
    
    JMP L8:
    
    L7:
      
    MOV DL,TEMP[SI]
    JMP L6:
    

    L8:
    MOV BL,DL
    
    MOV  AH,09H      
    MOV  DX,OFFSET BIG  
    INT 21H
    
    MOV AL,BL        
    
    MOV  AH,02H
    MOV  DL,AL
    INT  21H

;-----------------------------------
    MOV SI,1
    MOV DL,TEMP[0]
    MOV CX,20
  
    L9:
    CMP  DL,TEMP[SI]
    JL L10
                          
    INC SI
    LOOP L9
    
    JMP L11:
    
    L10:
      
    MOV DL,TEMP[SI]
    JMP L9:
    

    L11:
    MOV BL,DL
    
    MOV  AH,09H      
    MOV  DX,OFFSET SMAL  
    INT 21H
    
    MOV AL,BL        
    
    MOV  AH,02H
    MOV  DL,AL
    INT  21H




داداش دستت درد نکنه اما برنامه داره اخطار میگیره نتونستم درستش کنم میشه یه لطف کنی روی فایل txt اماده اش کنی و بزااری توی سایت ممنون میشم بازم دستت درد نکنه Heart
(۱۳-دى-۱۳۸۹, ۱۵:۵۸:۲۶)q7a نوشته است: [ -> ]داداش دستت درد نکنه اما برنامه داره اخطار میگیره نتونستم درستش کنم میشه یه لطف کنی روی فایل txt اماده اش کنی و بزااری توی سایت ممنون میشم بازم دستت درد نکنهHeart

اول: کدام خط برنامه خطا دارد.Exclamation
دوم: قسمت اول را باید در data segment کپی کنید نه این که همین جور همه را با هم کپی کنید.At
این هم سورس کامل فقط کافی است در یک فایل با پسوند ASM.* همه را کپی کنی و با اسمبلی اجراء کن.

کد:
; multi-segment executable file template.

data segment
    ; add your data here!
    
    TEMP DB  20  DUP(?)
    STR  DB  'Please Enter number:','$'
    YES  DB  'YES number:','$'
    NO  DB  'NO number:','$'  
    BIG  DB  'BIG number:','$'  
    SMAL  DB  'SMAL number:','$'
    AVG  DB  'AVG number:','$'

ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ; add your code here
    
    
        MOV SI,0
    MOV CX,20
  
    L:
    
    MOV  AH,01H
    INT 21H
    
    MOV TEMP[SI],AL                          
    

    INC SI
    LOOP L
          
;-----------------------------------
          
    MOV  AH,09H      
    MOV  DX,OFFSET STR  
    INT 21H  
    
;-----------------------------------    
    MOV  AH,01H
    INT 21H  
          
          
    MOV BL,AL
;-----------------------------------    
    
    MOV SI,0
    MOV CX,20
  
    L4:
    
    CMP BL,TEMP[SI]
    JE L1
                          
    INC SI
    LOOP L4
    
    
    JMP L3
          
          
    
    L1:
    MOV  AH,09H      
    MOV  DX,OFFSET YES  
    INT 21H
      
      
    L3:
;-----------------------------------    
    
    
    L2:
    MOV  AH,09H      
    MOV  DX,OFFSET NO  
    INT 21H
    
;-----------------------------------    
    
    
    MOV SI,0
    MOV DL,0
    MOV CX,20
  
    L5:
    
    ADD DL,TEMP[SI]
                          
    INC SI
    LOOP L5
        
        
    MOV DH,0
          
          
    MOV  AX,DX
    MOV  BL,20
    DIV  BL
            
            
    MOV  AH,09H      
    MOV  DX,OFFSET AVG  
    INT 21H          
        
              
    MOV  AH,02H
    MOV  DL,AL
    INT  21H
;-----------------------------------
    
    
    MOV SI,1
    MOV DL,TEMP[0]
    MOV CX,20
  
    L6:
    CMP  DL,TEMP[SI]
    JA L7
                          
    INC SI
    LOOP L6
    
    JMP L8:
    
    L7:
      
    MOV DL,TEMP[SI]
    JMP L6:
    

    L8:
    MOV BL,DL
    
    MOV  AH,09H      
    MOV  DX,OFFSET BIG  
    INT 21H
    
    MOV AL,BL        
    
    MOV  AH,02H
    MOV  DL,AL
    INT  21H

;-----------------------------------
    MOV SI,1
    MOV DL,TEMP[0]
    MOV CX,20
  
    L9:
    CMP  DL,TEMP[SI]
    JL L10
                          
    INC SI
    LOOP L9
    
    JMP L11:
    
    L10:
      
    MOV DL,TEMP[SI]
    JMP L9:
    

    L11:
    MOV BL,DL
    
    MOV  AH,09H      
    MOV  DX,OFFSET SMAL  
    INT 21H
    
    MOV AL,BL        
    
    MOV  AH,02H
    MOV  DL,AL
    INT  21H
            
  
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.