我想在另一个proc中调用一个proc。从内部的proc必须在之前推送,内部proc有ret 4。当我运行它时,我的计算机停止工作有什么方法可以做到这一点吗?也许添加另一个pop?我想改变颜色的值。
proc borders ;the out proc , before calling I pushed offset head
push bp
mov bp,sp
push ax dx di si
mov di, [bp+4] ; offset of head
mov si, [di] ; value of head
sub si, 158
push offset color
call random ; the in proc
mov [di], si
pop si di dx ax bp
ret 4
endp borders
proc random ;before used I pushed offset color
push bp
mov bp,sp
push ax bx dx
push ds
xor dx, dx ; The word-sized `DIV` division requires initiating
mov ds, dx
mov ax, [046Ch] ; read timer counter
pop ds
xor ax, [cs:bx] ; XOR counter and a WORD from memory
mov bx, 2000 ; limit : 0-3998
div bx ; DX:AX / BX -> Remainder in DX is [0,1999]
shl dx, 1
mov bx, [bp+4] ; changes the value of food/color depend on use.
mov [bx], dx
pop dx bx ax bp
ret 4
endp random
1条答案
按热度按时间jbose2ul1#
当然可以。如果你需要一个递归函数,proc甚至可以调用它自己。