汇编网首页登录博客注册
chinatree的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2011-09-11 00:19] 给大家找个小case玩。

请写出一个子程序abcd:
功能:找出给定的一个段空间内最大的偶数字节。
入口参数:si=0
出口参数:al=最大的偶数字节,si=它的偏移地址。
看下哪位大侠的用的内存最少,截止至9月11日24点,就当给自己的中秋礼物吧,我也会写的。
评论次数(4)  |  浏览次数(446)  |  类型(默认类型) |  收藏此文  | 

[  chinatree   发表于  2011-09-11 12:23  ]

那我就先献丑了:
abcd:Xor ax,ax
s1:mov al,[si]
test al,1
jnz s
cmp ah,al
ja s
mov ah,al
push si
add sp,2
s:add si,1
jnz s1
sub sp,2
pop si
mov al,ah
ret

[  landyking   发表于  2011-09-12 02:17  ]

来晚了,一直在写课程设计2.
问你个问题,test,jnz这些命令我都不知道.
汇编的我现在就看了王老师的这一本书,楼主再推荐一本吧.

[  chinatree   发表于  2011-09-12 08:13  ]

那个倒不用,这本就够了,既然你在写课程设计2,那怎么jnz都不知道,Jnz是目的操作数不为0就跳。Test,位操作指令,执行的是与操作,但是并不修改目的操作数的值,仅改变标志寄存器的值。

[  chinatree   发表于  2011-09-12 19:31  ]

还可以再简单些:
abcd:Xor ax,ax
s1:
test byte ptr [si],1
jnz s
cmp al,[si]
ja s
mov al,[si]
push si
add sp,2
s:add si,1
jnz s1
sub sp,2
pop si
ret

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码