. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
[bx]和loop指令
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
关于课本程序5.6的疑问
[已解决]
回复[
3
次 ] 点击[
544
次 ]
gsyangchao
[帖 主]
[ 发表时间:2009-01-25 12:02 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:12
信誉值:0
注册日期:2009-01-25 01:37
程序5.6
assume cs:cod
code segment
mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov cx,12
s: mov al,[bx]
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
疑问是:为什么要进行12次 mov ah,0?
我觉得mov ah,0这个语句完全可以写在 循环段S 外面,比如写在mov cx,12后面.
gsyangchao
[第
1
楼]
[ 回复时间:2009-01-25 12:05 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:12
信誉值:0
注册日期:2009-01-25 01:37
不好意思 第一句assume cs:code 少写了个e
gsyangchao
[第
2
楼]
[ 回复时间:2009-01-25 12:19 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:12
信誉值:0
注册日期:2009-01-25 01:37
没人回答呀,我自己编译连接了以上2种情况,得到的DX结果都是一样的
而且当MOV AH,0 在LOOP S段内时,其值也一直没有变化,所以将MOV AH,0写在LOOP S段外节省循环时的CPU开销=_=!
gsyangchao
[第
3
楼]
[ 回复时间:2009-01-25 12:20 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:12
信誉值:0
注册日期:2009-01-25 01:37
此贴由 贴主 于 [ 2009-01-25 12:20 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved