装配功能不会停止

时间:2013-12-25 19:59:07

标签: assembly infinite

我正在尝试显示3条消息,其中一条消息使用了一个功能。但该功能永远不会停止显示消息。 这是代码:

.model small
.data
message db "Hello from function!$"  
message1 db "Hello from the court!$" 
message2 db "Hello from the second court!$" 
.code
function proc
  mov dx,offset message;
  mov ah,9; 
int 21h;
endp


mov ax,@data;
mov ds,ax;

call function

lea dx,message1;
mov ah,9;
int 21;

call function

lea dx,message2;
mov ah,9;
int 21;

call function

mov ax,4c00h;
int 21h;

1 个答案:

答案 0 :(得分:3)

RET结束时您错过了function

function proc
  mov dx,offset message
  mov ah,9
  int 21h
  RET
endp

如果你没有把RET放在这里,你会发现递归发生的次数为function多次调用(而不超过堆栈)。