帮我解释下这一很少断的汇编代码?排列9个数的小算法 帮我注释下每行什么意思 最好给个例子解释下
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/23 15:58:15
帮我解释下这一很少断的汇编代码?排列9个数的小算法 帮我注释下每行什么意思 最好给个例子解释下
sort:
mov\x05\x05 bx,1
xor\x05\x05 di,di\x05\x05\x05;将di置0 \x05\x05
mov\x05\x05 cx,9
loop1:
mov\x05\x05 al,buf[di] ;取一个字节放入al中
cmp\x05\x05 al,buf[di+1] ;然后进行比较,
jnb\x05\x05 cotinue\x05 ;大于等于跳转到next1
xchg\x05 buf[di+1],al\x05;否则交换一下数据
mov\x05\x05 buf[di],al ;取al一个字节送入内存中
mov\x05\x05 bx,0\x05\x05\x05
cotinue:
inc\x05\x05 di ;di自加1
loop\x05 loop1
cmp\x05\x05 bx,0\x05\x05\x05
je\x05\x05 sort
看了好久都看不懂
我想知道它是怎样排序的 能给个例子结合说说吗 单单表面那些指令我都看得懂,可是不知道它怎样工作的,
sort:
mov\x05\x05 bx,1
xor\x05\x05 di,di\x05\x05\x05;将di置0 \x05\x05
mov\x05\x05 cx,9
loop1:
mov\x05\x05 al,buf[di] ;取一个字节放入al中
cmp\x05\x05 al,buf[di+1] ;然后进行比较,
jnb\x05\x05 cotinue\x05 ;大于等于跳转到next1
xchg\x05 buf[di+1],al\x05;否则交换一下数据
mov\x05\x05 buf[di],al ;取al一个字节送入内存中
mov\x05\x05 bx,0\x05\x05\x05
cotinue:
inc\x05\x05 di ;di自加1
loop\x05 loop1
cmp\x05\x05 bx,0\x05\x05\x05
je\x05\x05 sort
看了好久都看不懂
我想知道它是怎样排序的 能给个例子结合说说吗 单单表面那些指令我都看得懂,可是不知道它怎样工作的,
画个内存图就很好理解了
buf=999 12 98 65 71 99 0 24 0 0
buf[di] =999
buf[di+1] = 12
buf[di] >= buf[di+1]
交换
buf=12 999 98 65 71 99 0 24 0 0
di=di+1
循环 又从loop1:开始了
buf[di]=999 buf[di+1] = 98
再问: 其实我想问 mov bx,1 和mov bx,0 这两行代码的作用是怎样的 为什么这样设置
再答: 999 12 98 65 71 99 0 24 0 0 两层循环 loop1 内层循环是最大的数提前 * = buf[di] 999* 12 98 65 71 99 0 24 0 0 12 999* 98 65 71 99 0 24 0 0 12 98 999* 65 71 99 0 24 0 0 ..... 12 98 65 71 99 0 24 0 0 999 外层循环 cmp bx,0 je sort 反复的提前较大的数 直到在loop1循环里 整个数组没改动过 loop1 12* 98 65 71 99 0 24 0 0 999 12 98* 65 71 99 0 24 0 0 999 12 65 98* 71 99 0 24 0 0 999 12 65 71 98* 99 0 24 0 0 999 12 65 71 98 99* 0 24 0 0 999 12 65 71 98 0 99* 24 0 0 999 ... 12 65 71 98 0 24 0 0 99* 999 数组改过 bx=0 跳到sort: sort: 12 65 71 98 0 24 0 0 99 999 ... 12 65 71 0 24 0 0 98 99 999 sort: ... 12 65 0 24 0 0 71 98 99 999 直到 0 0 0 12 24 65 71 98 99 999 再次执行 loop1时 整个数组没改过 bx=1 排序已经完成了
buf=999 12 98 65 71 99 0 24 0 0
buf[di] =999
buf[di+1] = 12
buf[di] >= buf[di+1]
交换
buf=12 999 98 65 71 99 0 24 0 0
di=di+1
循环 又从loop1:开始了
buf[di]=999 buf[di+1] = 98
再问: 其实我想问 mov bx,1 和mov bx,0 这两行代码的作用是怎样的 为什么这样设置
再答: 999 12 98 65 71 99 0 24 0 0 两层循环 loop1 内层循环是最大的数提前 * = buf[di] 999* 12 98 65 71 99 0 24 0 0 12 999* 98 65 71 99 0 24 0 0 12 98 999* 65 71 99 0 24 0 0 ..... 12 98 65 71 99 0 24 0 0 999 外层循环 cmp bx,0 je sort 反复的提前较大的数 直到在loop1循环里 整个数组没改动过 loop1 12* 98 65 71 99 0 24 0 0 999 12 98* 65 71 99 0 24 0 0 999 12 65 98* 71 99 0 24 0 0 999 12 65 71 98* 99 0 24 0 0 999 12 65 71 98 99* 0 24 0 0 999 12 65 71 98 0 99* 24 0 0 999 ... 12 65 71 98 0 24 0 0 99* 999 数组改过 bx=0 跳到sort: sort: 12 65 71 98 0 24 0 0 99 999 ... 12 65 71 0 24 0 0 98 99 999 sort: ... 12 65 0 24 0 0 71 98 99 999 直到 0 0 0 12 24 65 71 98 99 999 再次执行 loop1时 整个数组没改过 bx=1 排序已经完成了
帮我解释下这一很少断的汇编代码?排列9个数的小算法 帮我注释下每行什么意思 最好给个例子解释下
帮我注释一下每行代码,就是解释下每行的意思,谢谢了
各位大神能不能帮我举个例子解释下增值税这三个字的意思?
两个Matlab中关于方波傅里叶展开比较的程序 那个高手帮我解释下每行的意思 每行都需要注释~
汇编习题 哪位高手帮我看看下面的汇编习题,为什么答案是D ,哪位给高手帮我详细解释下,谢谢?
陈墨瞳 谁可以给帮我解释下这个名字的意思 最好是很好的解释
帮我解释下如下的CSS代码是什么意思?
C中的位域和位段,请帮我解释下,最好举个例子.
刚给侄女起的名字叫梦菡,能帮我解释下什么意思吗
帮我解释下下面这段代码的意思
帮我解释 子凌 的意思
帮我解释下我的英文名字?