|
汇编循环程序设计学习笔记
金州2005.11.15
说明,因为这是自己的学习笔记,有众多的不完善的地方,只建议喜欢汇编的朋友参考,并帮助我,
不能作为学习资料,凡是标明金州注释的地方,是自己解释的,有可能错误,特意标出来,
DO_WHILE 结构:初始化 ——控制条件——循环体
明显的,如果控制条件不满足,将不执行循环体,可能循环体一次都不执行,可能为0
DO_UNTIL结构,初始化——循环体——控制条件
可以看出循环体至少执行一次,
例如,把BX中的二进制数以十六进制的形式显示在屏幕上
.....
mov ch, 4
rotate: mov cl, 4
rol bx, cl
mov al, cl
mov al, bl
and al, 0fh
add al, 30h
cmp al, 3ah
jl printit
add al, 7h
printit: mov dl, al
mov ah, 2
int 21h
dec ch
jnz rotate
计数控制,已经知道循环四次。
例如二,将正数n插入一个已整序的正数字数组
x dw ?
array_head dw 3,5,15,23,37,49,52,65,78,99
array_end dw 105
n dw 32
.......
mov ax, n
mov array_head-2,offffh (-1的补码,金州注释,是个负数就行)
mov si, 0
compare:
cmp array_end[si],ax
jle insert (<=就插入,金州注释)
mov bx,array_end[si] (si 是数组的末指针,金州注释)
mov array_end[si+2],bx
sub si,2
jmp short compare
insert:
mov array_end[si+2],ax
关键要有边界控制,这样才能跳到insert,或者就很不幸了:)),会陷入死循环了。
这个片段的关键在于插入在那个位置,一一比较,并不知道循环多少次,
例如三,多重循环,外循环,套入内循环
将首地址为a 的字数组从大到小排序。(起泡排序算法,多重循环)
(明显的是一个需要多重循环比较的程序,金州注释)
a dw 100,30,78.99,15,-1,66,45,189,256 (定义变量,金州注释)
.......
mov cx, 10 (因为用到loop,需要用cx,注意因为是多重,cx会改变,需要保存,金州注释)
dec cx (减1变为9,金州注释)
loop1: mov di, cx (保存 cx, 用di作为周转,金州注释)
mov bx,0
loop2: mov ax, a[bx]
cmp ax, a[bx+2] (比较大小,金州注释)
jpg continue (>=不交换,金州注释)
xchg ax, a[bx+2] ( 否则,交换,金州注释)
mov a[bx], ax
continue:
add bx ,2
loop loop2
mov cx ,di (做外循环,loop1,金州注释)
loop loop1
........
|
一共有 1 条评论
http://www.43things.com/entries/view/827394 【phpwind.net隐屏功能】
http://w2ahnt.blogged.it/ 【phpwind.net隐屏功能】
http://www.whitepage.com.au/28hntz/ 【phpwind.net隐屏功能】
http://lqy5bh.blogmaker.com/ 【phpwind.net隐屏功能】
http://www.experienceflagstaff.com/blogs/hyw8mu/ 【phpwind.net隐屏功能】
http://w3how1.marketersblogs.com/ 【phpwind.net隐屏功能】
http://www.blogthat.net/hnz7dj/ 【phpwind.net隐屏功能】
http://www.rapidblogs.com/ou5bip/ 【phpwind.net隐屏功能】
http://blog.enter.net/pv4ahn 【phpwind.net隐屏功能】
http://www.memphisweb.net/?u=hny5ah 【phpwind.net隐屏功能】
http://www.celebrites-selection.com/blogs/fkw29f/ 【phpwind.net隐屏功能】
http://ms28fk.blogbugs.org/ 【phpwind.net隐屏功能】
http://www.enashir.com/blogs/v1cipv/ 【phpwind.net隐屏功能】
http://blogs.fcpnet.net/v1ahnt/ 【phpwind.net隐屏功能】
http://www.livehouse.com.au/6clrz5/ 【phpwind.net隐屏功能】
http://www.dnforum.com/blogs/?w=afry5b 【phpwind.net隐屏功能】
http://my-blogs.net/lr39gl/ 【phpwind.net隐屏功能】
http://blogs.newgecko.com/u1bipu/ 【phpwind.net隐屏功能】
http://www.pandablogs.com/kq07dj/ 【phpwind.net隐屏功能】
http://www.paranoidjournal.com.ua/hmv28d/ 【phpwind.net隐屏功能】
http://17jqv2.blogsome.com/ 【phpwind.net隐屏功能】
http://fmw39f.uniterre.com/ 【phpwind.net隐屏功能】
http://6cmty5.blogbugs.org/ 【phpwind.net隐屏功能】
http://www.boxblogs.com/6cmty5/ 【phpwind.net隐屏功能】
http://fan-blogs.us/create-blog/z6gntz/ 【phpwind.net隐屏功能】
http://blog.newsjungle.com/6cmt05/ 【phpwind.net隐屏功能】
http://www.aisx5b.krify.com/ 【phpwind.net隐屏功能】
http://blog.moddingplanet.it/?w=hox4ag 【phpwind.net隐屏功能】
http://www.gamecenter.ru/blogs/39jpv2/ 【phpwind.net隐屏功能】
http://www.gamecenter.ru/blogs/ms5cjp/ 【phpwind.net隐屏功能】
http://www.gamecenter.ru/blogs/l6hs6d/ 【phpwind.net隐屏功能】
http://www.gamecenter.ru/blogs/syagns/ 【phpwind.net隐屏功能】
http://www.gamecenter.ru/blogs/jr07ej/ 香港【phpwind.net隐屏功能】
http://28hntz.uniterre.com/ 香港【phpwind.net隐屏功能】
http://www.journalhome.com/kpy4bg/ 香港【phpwind.net隐屏功能】
http://www.bloxster.net/s19gns/ 香港【phpwind.net隐屏功能】
http://www.dynastynet.net/users/qw6hou/ 香港【phpwind.net隐屏功能】
http://blogs.fcpnet.net/oyckry/ 香港【phpwind.net隐屏功能】
http://www.memphisweb.net/?u=qw6hou 香港【phpwind.net隐屏功能】
http://www.celebrites-selection.com/blogs/4amv19/ 香港【phpwind.net隐屏功能】
http://www.smartpunters.com/oyckry/ 香港【phpwind.net隐屏功能】
http://www.bloxster.net/9pjw9g/ Wow Gold