关于loop指令
时间:2011-12-12
来源:互联网
请问关于loop指令中
执行完(cx)=(cx)-1;后
(ip)=(ip)+8
这里的8位位移=标号处得地址-loop指令后的第一个字节的地址。这是什么意思??是不是loop指令本身每次循环占用段长为8位的内存段?? 能不能举例说明一下??
执行完(cx)=(cx)-1;后
(ip)=(ip)+8
这里的8位位移=标号处得地址-loop指令后的第一个字节的地址。这是什么意思??是不是loop指令本身每次循环占用段长为8位的内存段?? 能不能举例说明一下??
作者: ljh21521 发布时间: 2011-12-12
loop是通过转移目的地址和转移开始地址之间的位移改变IP的,比如说
mov cx,4
s:mov [bx],ax
add bx,2
loop s
loop指令是这样执行的:先把(CX)=(CX)-1,如果(CX)==0,那就顺序执行下面的代码。如果(CX)!=0,那(IP)=(IP)+8位位移,即跳到S:处,因为执行loop指令的时候,IP已经指向LOOP指令后的下一条指令,要根据位移进行转移的话,8位位移=S:标号处的地址-现在的IP。这样(IP)=(ip)+8位位移,CS:IP指向了S:处,循环。
呵呵
mov cx,4
s:mov [bx],ax
add bx,2
loop s
loop指令是这样执行的:先把(CX)=(CX)-1,如果(CX)==0,那就顺序执行下面的代码。如果(CX)!=0,那(IP)=(IP)+8位位移,即跳到S:处,因为执行loop指令的时候,IP已经指向LOOP指令后的下一条指令,要根据位移进行转移的话,8位位移=S:标号处的地址-现在的IP。这样(IP)=(ip)+8位位移,CS:IP指向了S:处,循环。
呵呵
作者: leiiiii 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28