ZKX's LAB

汇编程序乱飞是怎么回事,本来RAM在一开始就清零了,但为什么判断是还有值 清零汇编程序实验原理

2021-04-27知识4

谁能替我编个汇编清零程序。急啊,一会实验了 MOV R0,#00H;ROMOV A,#00H;AMOV DPTR,#7000H;DPTR起始地址LOOP:MOVX@DPTR,A;A->;(DPTR)INC DPTR;DPTR加1INC R0;R0加1CJNE R0,#FFH,LOOP;RO=FFH?

为什么汇编程序要将AX清零后压栈? PUSH DSMOV AX,0PUSH AXRET上述指令是配对出现的,和中断调用MOV AX,4C00H/INT 21H功能相似,实现返回DOS系统的操作。要详细回答这个问题,就要涉及到程序的执行原理:简单来讲,作为DOS程序,每个EXE文件在执行时被看成DOS的一个子程序,所以有子程序的入口,此时EXE文件的入口地址CS值和DS值相同,而IP值等于0,所以前面的PUSH DS相当于CS入栈,而把AX值赋0然后入栈,相当于IP入栈。这样当程序最后再执行RET后,就可以返回原DOS系统了。

#清零汇编程序实验原理

随机阅读

qrcode
访问手机版