我需要冒泡从最大的7个整数最小的一个无组织的阵列,它看起来像9,6,5,4,3,2,1。
我跑我的代码经过编译器和它说冒泡排序的汇编语言
我不明白这有什么代码的问题:你忘了输入一个
code segment
assume ds:code,cs:code
start:
mov ax,code
mov ds,ax ;code start
ARR: dw 1,2,4,3,6,5,9
mov ch,0h
mov cl,1h
mov bh 7h
jmp assign_nums
restart:
mov ch,0h
mov cl,1h
dec bh
jmp assign_nums
swap:
mov ch,dl
mov cl,dh
jmp next
next:
cmp bh,cl
je restart
add ch,1h
add cl,1h
jmp assign_nums
assign_nums:
cmp bh,0h
je done
mov dh,[ARR+ch]
mov dl,[ARR+cl]
cmp dh,dl
jl swap
jnl next
done:
nop
code ends
end start
所以它的一堆意大利面代码?有没有更好的方法来编码?我不知道我在这里用汇编代码 – Puloko
来自user3144770的答案很好。我所做的唯一改变不是让您选择跳过ARRAY。仅将您的ARR放入.data段 '.DATA或.FARDATA DSEG' 'ARR:dw 1,2,4,3,6,5,9' – BKCOHEN