. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
外中断
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
这段代码帮忙解释解释
[待解决]
回复[
2
次 ] 点击[
283
次 ]
rlfrlf
[帖 主]
[ 发表时间:2011-08-20 11:50 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-07-11 19:02
mov dx,10h
mov ax,0
s1: sub ax,1
sbb dx,0
cmp ax,0
jne s1
cmp dx,0
jne s1
代码含义看得懂,就是不明白他的,计算,帮忙解释一下,谢谢
tily
[第
1
楼]
[ 回复时间:2011-08-20 11:56 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:12
信誉值:1
注册日期:2011-06-04 00:01
代码含义看的懂 怎么会不懂他的计算呢 设置100000H次循环,高位放在DX中 地位放在AX中,每次减1,这里要考虑像DX借位,当高位和地位都为零时跳出循环
juende66
[第
2
楼]
[ 回复时间:2011-12-06 14:22 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2011-11-11 23:27
1.设置dx=0010 2.设置ax=0000
s1:进入循环
sub ax,1 此时ax=FFFF CF=1
sbb dx,0 此时dx=dx-0-CF,dx=0009
cmp ax,0 比较ax和0 此时 ax=FFFF
jne s1 如果ax不等于0 就调转到s1 意思是说ax每次减1直到把FFFF减到0才不会调转
cmp dx,0 比较dx和0 此时 dx=0009
jne s1 如果dx不等于0 就调转到s1 意思是说dx每次减1直到把9减到0才不会调转
max ax,4c00h
int 19h
以上程序段 第一次执行sub ax,1 时 ax=0 所以有借位 CF=1 紧接着 sbb dx,0 (让sbb-cf)
只有在 ax=0的时候 才会有借位 cf 才会等于1 dx才会减1 dx每减一次1 就相当于 ax-FFFF
总共要减10h 个 ax-1
FFFF次加上0-1的一次 就是10000次
10h个 就是 10h*10000=100000h次
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved