这是我的问题
Q) 编写一个函数“addtoset”,它获取函数的偏移量,并将该偏移量存储在一个最多可容纳 8 个偏移量的数组中。如果集合中已经有八个偏移量,它什么也不做。编写另一个函数“callset”,逐个调用集合中的所有函数。
我最初试图用三个函数来做,你可以在我的代码中看到(我使用的是 NASM 16 位架构)
这是我的代码,它组装但不显示任何输出,我该如何修复它?
org 100h
segment data
arr dw 0,0,0
count dw 0
section .text
mov bx , arr; assigning address of arr to bx
mov ax , fun1;moving offset of fun1 to ax
call addtoast
mov ax , fun2;moving offset of fun2 to ax
call addtoast
mov ax , fun3;moving offset of fun3 to ax
call addtoast
call callset
end:
MOV AH,4CH
INT 21H
callset:;this function will call other functions
call arr
call [arr+2]
call [arr+4]
ret
addtoast:;this function puts offset into array
mov [bx+count], ax
add [count], word 2
ret
fun1:;prints 1
mov dx , '1'
mov ah , 2h
int 21h
ret
fun2:;prints 2
mov dx , '2'
mov ah , 2h
int 21h
ret
fun3:;prints 3
mov dx , '3'
mov ah , 2h
int 21h
ret