
--不是要求用汇编语言吗?
--搜这个类,你怎么在汇编里面使用?
80x86 汇编语言,退出程序:
MOV AX, 4C00H
INT 21H
即可。
参考:
http://hi.baidu.com/do_sermon/item/611b407a6ff20c2dd6a89c59
Intel80x86系列汇编语言中的LOOP指令,是循环指令,循环次数由计数寄存器CX指定。是否执行循环体的判断指令在循环体之后,所以,至少执行1次循环体,即至少循环1次。执行LOOP指令时,CPU自动将CX的值减1,若CX=0,则结束循环;否则,重复执行循环体。本题是个特例,虽然计数寄存器的初值为0,但当执行完1次循环体,遇到LOOP指令时,CX=0-1=65535。虽然产生了借位,但CX不等于0,所以,要继续执行循环体。本题,共执行循环体65536次。JMP只是一个无条件跳转指令,可以任意跳转。按照你说一直在循环是这种结构
NEXT:......
.......
JMP NEXT(只是随便举个例子)
这结构如果在中间不加任何跳转就是个死循环 ,因为程序是顺序执行的,跳到NEXT时,又顺序往下执行,所以是死循环。
要让程序跳转出,可以通过其他有条件的条件的跳转指令(如 JC JZ JNZ等等)跳出,不过跳出的地址一定不能是在刚才例子的程序内部(NEXT~JMP之间),不然还是死循环。
而其他结构如
NEXT:.....
.......
JMP LP
..........
LP: .........
这程序就不是死循环,因为它直接跳到了下面只是不执行 JMP 和 LP 之间的程序了。有一些程序还是用这种结构的。
由于JMP不具有判断等原因,所以一般不建议用JMP指令,除非特殊情况。。。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)