. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于loop指令中“0-1=FFFFH”经典问题  [待解决] 回复[ 13次 ]   点击[ 689次 ]  
ym3823078
[帖 主]   [ 发表时间:2008-07-20 19:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-18 07:43
mov cx,0  
    s: mov ax,bx  
    loop s  
    以上指令序列执行后mov ax,bx被执行了多少次__2__(正确答案)_。  
 1、 0  
 2、 256  
 3、 65535  
 4、 65536 


,知道loop会把0-1以后进行判断,cx=FFFF,我 看了论坛里 的 一些 讨论,说 是 因为是loop是  短转移,
但 我 还 是 想 不 通,为 什么 仅仅被 执行256次,而不 是 65536???
qqldd
[第1楼]   [ 回复时间:2008-07-20 20:43 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-20 13:58
嗯,我也想知道!
我把 mov ax,bx 换成 inc ax
在debug中实验,结果ax由0最后还是0
应该是65536啊……
tomato
[第2楼]   [ 回复时间:2008-07-20 22:33 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
我也认为是65536
ym3823078
[第3楼]   [ 回复时间:2008-07-21 10:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-18 07:43
结贴,问题 解决
qqldd
[第4楼]   [ 回复时间:2008-07-21 15:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-20 13:58
嗯?最后答案 lz说一下
是65536吧?
ym3823078
[第5楼]   [ 回复时间:2008-07-22 15:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-18 07:43
对,答案就 是65536
lonelyboy
[第6楼]   [ 回复时间:2008-07-23 15:48 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2008-06-09 19:12
我 看了论坛里 的 一些 讨论,说 是 因为是loop是  短转移,
-----------------------------------------------------------------------------------------

回复:
答案:65536
原因:楼主首先再次进行一下区分,loop 指令循环次数的控制是由CX寄存器内的数据决定的.loop 是短转移指令是它的转移地址空间的大小,短转移的大小为256个字节大小:
EG:
assume cs:code

code segment
start:
        mov ax,1234H
        mov cx,4H
        
        s:
        mov ax,0H
        inc ax
        db 123D dup (90H)
        loop s
        ;jmp near ptr s
        
        mov ax,4200H
        int 21H
code ends
end start
而循环的次数在cx寄存器中,能表示的范围是0~65535,当为0时,0H-1H=FFFFH  <> 0所以循环次数应该为65536,与loop 是短转移指令没有关系.
starrynight
[第7楼]   [ 回复时间:2008-07-24 09:48 ]   [引用]   [回复]   [ top ] 
荣誉值:98
信誉值:2
注册日期:2007-10-09 18:23
楼上正解 顶之不吝
wupeng0618
[第8楼]   [ 回复时间:2008-07-28 23:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-21 16:35
循环的次数只与cx有关系
wwtwx
[第9楼]   [ 回复时间:2008-07-29 14:40 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-29 14:37
欢迎大家光临 极酷论坛:www.jococ.com
sunnyfairy
[第10楼]   [ 回复时间:2008-08-26 23:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2008-04-12 00:20
哦,明白了,被搞糊涂了,还是基础没有掌握好,被忽悠了。
82356722
[第11楼]   [ 回复时间:2009-03-31 22:41 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-03-27 20:52
恩,和loop无关哈。,
xueyugaoyuan
[第12楼]   [ 回复时间:2012-08-20 22:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-08-14 17:57
学习了 啊 哈哈 现捡了一个知识点啊哈哈哈
sz_hgc
[第13楼]   [ 回复时间:2012-08-31 02:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-07-21 21:21
谢谢六楼的童鞋~ @  学习了。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved