我在编写数组内容时遇到问题。在下面的代码中,我尝试在屏幕上打印它。但是当论据量很小时,我并不总能看到所有内容。有时在前n个参数的位置是空白。但是当有更多的论据时,所有32个都显示出来。 (数组是128个字节)
mov ax,32
mov cx,ax
xor si,si
pet:
mov dl,tablica[si]
mov ah,2h
int 21h
inc si
loop pet
这是数组的声明。当然ds由dane seg初始化。
dane segment
tablica db 128 dup('$')
dane ends
答案 0 :(得分:0)
我没有看到那里的错误。但另一方面,这不是整个计划。
您只打印大小为128字节的32字节数组。这对调试没有帮助,因为你不能说数组的哪些字节被打印出来。出于调试目的,我建议您用可以让您知道哪些字节专门打印的内容替换tablica db 128 dup('$')
,例如:
tablica db 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
然后你得到abcdefghijklmnopqrstuvwxyzABCDEF
作为输出?如果没有,那么你可能在打印之前在你的代码中的某个地方损坏了你的数组,或者你的ds
指向了错误的地方,或者你已经挂钩或损坏了int 21h
中断(如果你这样做,这是非常不可能的)不要在你的代码中处理中断向量。)