. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  一道检测题  [待解决] 回复[ 2次 ]   点击[ 632次 ]  
t181935471
[帖 主]   [ 发表时间:2009-06-06 21:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-09 19:14
mov cx,0  
    s: mov ax,bx  
    loop s  
    以上指令序列执行后mov ax,bx被执行了多少次_____。 4 
 1、 0  
 2、 256  
 3、 65535  
 4、 65536 
注解:loop s执行时,先cx自减1,cx=cx-1=0-1=0+10000H-1=FFFFH,即65535,加上loop s前mov ax,bx被执行了一次,所以mov ax,bx被执行了65535+1=65536次 

上述注解,不是很懂,希望大家能指教下,谢谢!
abob
[第1楼]   [ 回复时间:2009-06-08 11:18 ]   [引用]   [回复]   [ top ] 
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
这个提要需要的知识点是loop指令的执行步骤。

先cx--,然后再用cx和0比较判断是否跳出循环。


设置mov cx,1当执行loop指令,即满足条件退出loop循环。(也就是说循环一次,这个和第五章使用loop相和)。

而当设置mov cx,0。当执行loop指令,先cx=cx-1,此时cx=ffffH。cx不等于0,则继续循环。
cx=ffffh,cx=cx-1,即cx=fffeh,不等于0,则继续循环。

直到cx=1时,执行loop指令,才退出循环。
t181935471
[第2楼]   [ 回复时间:2009-06-09 15:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-04-09 19:14
这个提要需要的知识点是loop指令的执行步骤。

先cx--,然后再用cx和0比较判断是否跳出循环。


设置mov cx,1当执行loop指令,即满足条件退出loop循环。(也就是说循环一次,这个和第五章使用loop相和)。

而当设置mov cx,0。当执行loop指令,先cx=cx-1,此时cx=ffffH。cx不等于0,则继续循环。
cx=ffffh,cx=cx-1,即cx=fffeh,不等于0,则继续循环。

直到cx=1时,执行loop指令,才退出循环。
------------------
回复:


先cx=cx-1,此时cx=ffffH   cx=-1,为什么要表示成补码形式呢?是计算机的规定还是?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved