这个问题的原因是,前唤蚂掘面定义的数据当作被当作指令,但物模这些指令的执行并不影响后面的结果,你可以反汇编看一下。
13EA:0100 48DEC AX
13EA:0101 65DB 65
13EA:0102 6CDB 6C
13EA:0103 6CDB 6C
13EA:0104 6FDB 6F
13EA:0105 20576FAND [BX+6F],DL
13EA:0108 726C JB 0176
13EA:010A 64DB 64
13EA:010B 2124 AND [SI],SP
前面的这些就是那些数据对应的指令,他们没有影响后面的这3条指令的执行。
13EA:010D B409 MOV AH,09
13EA:010F CD21 INT 21
13EA:0111 CD20 INT 20
05-06 原始解答
问题不在你的程序,而在你的程序之后,
13A4:0100 db 'Hello World!$'
13A4:010D mov dx,0100
13A4:0110 mov ah,9
13A4:0112 int 21
13A4:0114
由于没有程序结束(返回DOS)的指令,这后面的不确定和核数据被作为指令执行,从而导致执行了非法指令而被 *** 作系统强制关闭。
你只需要在其后加上一条指令即可 INT 20
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)