汇编排序
来源:百度知道 编辑:UC知道 时间:2024/06/24 16:12:31
3、有一个字节型数组,排序:1)作为无符号数排序,2)作为带符号排序,存放排序结果。
①已知数据段的定义:
data segment
org 2000h
num db 12h,95h,0f1h,oc2h,82h,2h,10h,34h
count db $-num
org 3000h
res1 db count dup(?) ;store unsigned
org 4000h
res2 db count dup(?) ;store signed
data ends
我想问问各位高手,有符号排序与无符号排序的指令有什么区别?谢谢各位指点!
①已知数据段的定义:
data segment
org 2000h
num db 12h,95h,0f1h,oc2h,82h,2h,10h,34h
count db $-num
org 3000h
res1 db count dup(?) ;store unsigned
org 4000h
res2 db count dup(?) ;store signed
data ends
我想问问各位高手,有符号排序与无符号排序的指令有什么区别?谢谢各位指点!
就拿数组中的前两个元素来说,12h,无论作为无符号数还是有符号数,其值都是十进制的18;而95h则不然,作为无符号数,它是十进制的149,若作为有符号数,则是-107。若要比较这两个数的大小,无符号数比较与有符号数比较,结果截然相反。
无符号数比较:12h<95h,18<149
有符号数比较:12h>95h,18>-107
比较指令是一样的,都是用cmp指令,关键是条件转移指令,两者相近,但又不同。假设,目的操作数>源操作数,则转,
mov al,12h
cmp al,95h
无符号数比较,条件转移指令:ja al>95h,称作:高于转
有符号数比较,条件转移指令:jg al>95h,称作:大于转
小结:
无符号数比较:
目的操作数>源操作数,条件转移指令用ja,称作:高于转
目的操作数<源操作数,条件转移指令用jb,称作:低于转
有符号数比较:
目的操作数>源操作数,条件转移指令用jg,称作:大于转
目的操作数<源操作数,条件转移指令用jl,称作:小于转
; 冒泡法排序
; -----------------------------------------
; 定义常量
Yes EQU 1
No EQU 0
On EQU 1
Off EQU 0
;