omidparkour
پنج شنبه 29 آبان 1393, 15:11 عصر
سلام
من میخوام یه برنامه بنویسم که 10 تا عدد از ورودی بگیره و در آرایه ای قرار بده و سپس مرتب سازی کنه
من خودم برنامه زیر رو نوشتم اما نمیدونم چرا کار نمیکنه
include io.h.model small
.Stack 200h
.Data
;arr1 db 10 dup(?)
msg1 db "enter a number: ",0
msg2 db "the entered number is:",0
crlf db 10,13,0
temp dw ?
temp2 dw ?
arrw dw 10 dup(?)
.Code
main proc
mov ax, @data
mov ds, ax
;-------------------------------------------------------------
clrscr
mov si, offset arrw
;mov di, offset arrw
mov cx,10
wh1:
output msg1
inputs temp,4
atoi temp
mov [si],ax
add si,2
clrscr
loop wh1
;-------------------------------------------------------------
;mov si,offset arrw
;mov di,offset arrw
;add di,2
;mov ax,[si]
;mov bx,[di]
;mov cx,9
;wh3:
; mov ax,[si]
; mov bx,[di]
; cmp ax,bx
; jg great
; jnbe wh3
;great:
; mov [di],ax
; mov [si],bx
; add si,2
; add di,2
; loop wh3
;-------------------------------------------------------------
;Sort Asc
;-------------------------------------------------------------
mov si,offset arrw
mov di,offset arrw
add di,2
mov cx,10
;cmp cx,9
;je finish
loop2: ;cmp cx,0
;je finish
mov ax,[si]
mov bx,[di]
cmp ax,bx
ja change ;jump Greater
;loop3:
add si,2
add di,2
jmp loop2
;cmp ax,bx
; jne loop2 ;jump not Equal
; loop loop2
;jmp finish
change:
mov [di],ax
mov [si],bx
add di,2
jmp loop2
finish:
;-------------------------------------------------------------
mov si, offset arrw
mov cx,10
output msg2
output crlf
wh2:
mov dx,[si]
itoa temp2,dx
;mov temp3,bx
output temp2
output crlf
add si,2
loop wh2
;-------------------------------------------------------------
mov ax, 4c00h
int 21h
main endp
end main
من میخوام یه برنامه بنویسم که 10 تا عدد از ورودی بگیره و در آرایه ای قرار بده و سپس مرتب سازی کنه
من خودم برنامه زیر رو نوشتم اما نمیدونم چرا کار نمیکنه
include io.h.model small
.Stack 200h
.Data
;arr1 db 10 dup(?)
msg1 db "enter a number: ",0
msg2 db "the entered number is:",0
crlf db 10,13,0
temp dw ?
temp2 dw ?
arrw dw 10 dup(?)
.Code
main proc
mov ax, @data
mov ds, ax
;-------------------------------------------------------------
clrscr
mov si, offset arrw
;mov di, offset arrw
mov cx,10
wh1:
output msg1
inputs temp,4
atoi temp
mov [si],ax
add si,2
clrscr
loop wh1
;-------------------------------------------------------------
;mov si,offset arrw
;mov di,offset arrw
;add di,2
;mov ax,[si]
;mov bx,[di]
;mov cx,9
;wh3:
; mov ax,[si]
; mov bx,[di]
; cmp ax,bx
; jg great
; jnbe wh3
;great:
; mov [di],ax
; mov [si],bx
; add si,2
; add di,2
; loop wh3
;-------------------------------------------------------------
;Sort Asc
;-------------------------------------------------------------
mov si,offset arrw
mov di,offset arrw
add di,2
mov cx,10
;cmp cx,9
;je finish
loop2: ;cmp cx,0
;je finish
mov ax,[si]
mov bx,[di]
cmp ax,bx
ja change ;jump Greater
;loop3:
add si,2
add di,2
jmp loop2
;cmp ax,bx
; jne loop2 ;jump not Equal
; loop loop2
;jmp finish
change:
mov [di],ax
mov [si],bx
add di,2
jmp loop2
finish:
;-------------------------------------------------------------
mov si, offset arrw
mov cx,10
output msg2
output crlf
wh2:
mov dx,[si]
itoa temp2,dx
;mov temp3,bx
output temp2
output crlf
add si,2
loop wh2
;-------------------------------------------------------------
mov ax, 4c00h
int 21h
main endp
end main