为什么我用汇编语言有多少种写出了一个死循环代码如下


程序将BX中的二进制数用十六进制形式输出. 应该输出1234.可是上面的程序会不停输出......为什么会不停输出呢?

· TA获得超过4.6万个赞

回不能在“段间”返回,就不能回到DOS状态

push ds可以认為是传递参数,但是递归没有出口实际是死循环,早晚堆栈溢出

那为什么把ret注释掉还会出错呢?
ret到底该怎么用呢?能再详细一点吗,谢谢啦
注釋掉ret还会出错
堆栈失衡,出错是会的注释掉ret,重新编译、链接循环输出应不会!
ret该怎么用?
ret形式上相当POP IP
通常用于子程序结束,但不排除其他用法如:
上面讲到的
push bx
ret
形式上相当
call bx

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

例9寄存器AX中有一个16们二进制数編程统计其中“1”的个数,结果存放在CX中本例最好采用“先判断、后执行”的结构,即先检查AX中有无为“1”的位则代码段的有关程序洳下:/6c224f4a20a3ccf3d751?x-bce-process=image/quality,q_85">

· 超过12用户采纳过TA的回答

AND AX,AX 不知AX相加为何意// **AND是与操作不是ADD这个操作目的是判断AX中的1是不是全部移出了,如果没有,继续移这样就沒有你后面的问题了,可能你看错了AND和ADD

你对这个回答的评价是


我现在明白了,AND指令是为下一条间断指令JZ服务的整个循环中只有JZ才可以跳出循环,没有JZ就成了死循环了

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许囿别人想知道的答案。

我要回帖

更多关于 汇编语言有多少种 的文章

 

随机推荐