. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
主题 : :  关于检测点9.3的一些思考  [待解决] 回复[ 6次 ]   点击[ 523次 ]  
wueric88
[帖 主] [ 发表时间:2012-10-29 16:32 ] 
荣誉值:0
信誉值:0
注册日期:2012-10-16 22:27
这个程序全部代码(已修改)如下:  
assume cs:code  
code segment  
start:mov ax,2000h  
mov ds,ax  
mov bx,0  
s:mov cl,[bx]  
mov ch,0  
inc bx  
jcxz ok  
loop s  
ok:dec bx  
mov dx,bx  
mov ax,4c00h  
int 21h  
code ends  
end start  
1.这个程序中为什么在ok的地方加一句dec bx的呢,程序结束的时候岂不是第一个0单元的上一个单元么?
2.loop的执行过程就是cx自减1,然后判断cx是否为0,如果为0就不跳转,问题就是如果某个单元的值是1的话,这个时候执行到loop s那句的时候,cx就会变成0,然后就不跳转了,就会顺序执行下去了,这个时候得到的bx是第一个单元为1的地址而不是0了也?
chinatree
[第3楼] [ 回复时间:2012-10-30 13:51 ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
不管它,你明白loop就行。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved