1

我需要用汇编语言反向打印一个字符串数组。以下是我的代码。

proc reverseAr
    mov cl,count
    mov si,offset Ar
    mov si,3
    write2:

        mov dl,Ar[si]
        mov ah,02h
        int 21h
        dec si
    loop write2
ret
endp

但这并没有给出答案。谁能告诉我si的确切含义是什么?不是数组位置的索引吗?

4

2 回答 2

1

si 表示源索引寄存器。它可以用作指针。它是偏移寄存器语法将是:

SI 源索引:一般寻址,字符串操作中的源偏移量

于 2013-09-13T04:13:33.350 回答
1
proc reverseArray
    mov cl,count
    dec cl
    dec si
    printRevArr:
        mov dl,arr[si]
        add dl,48
        mov ah,02h
        int 21h

        dec si

    loop printRevArr

    ret
endp

不要使用mov si,offset Ar. 它会重置数组索引。

于 2013-09-01T12:55:38.270 回答