首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于loop指令,该怎么处理

2012-04-03 
关于loop指令请问关于loop指令中执行完(cx)(cx)-1后(ip)(ip)+8这里的8位位移标号处得地址-loop指令后

关于loop指令
请问关于loop指令中
执行完(cx)=(cx)-1;后
(ip)=(ip)+8
这里的8位位移=标号处得地址-loop指令后的第一个字节的地址。这是什么意思??是不是loop指令本身每次循环占用段长为8位的内存段?? 能不能举例说明一下??

[解决办法]
不是。assume 语句对段寄存器指向的说明,只是让汇编程序在处理访问标号的指令时,看标号所在的段是否需要加上额外的段前缀。比如在你程序里,assume ds:data 通常的对 data 段里的数据访问就不需要加,如果有 mov ax, word ptr start 这样的以数据操作形式访问 code 段里的内容的话,就会被加上 cs: 段前缀指令。对多数据段也是一样的要求。
assume cs:code 这样的语句,也只有 Masm5 这样的早期版本需要吧,后来的取消了这个要求。对其它段的说明还是需要的。对 cs ,执行在哪个段,它肯定是指向在哪个段了,这是理所当然的,再用 assume 语句说明,就是多余了。

热点排行