所以问题是:
从键盘上读取符号。如果该符号是字母,则使用带位移的寄存器间接模式,将此字母写入存储位置DS:20h。使用基于索引的索引模式,在位置DS:21h处,将字母表中的下一个字母(如果存在)写入。使用直接寻址模式在位置DS:21h处将字母表中的前一个字母(如果存在)写入。 例如,如果我们在键盘上键入c,则c,d和b应该存储在内存中。在我们键入a时,应该只存储a和b,因为在a之前的字母表中没有前一个字母。
我的解决方法是:
mov ah, 1
int 21h
mov bx, 20h
mov ah, 0
off dw 0h
mov [bx+off], ax
mov cx, [bx+off]
inc ax
inc off
mov si, off
mov [bx][si], ax
mov cx, [bx][si]
inc ax
inc si
add bx,si
mov [bx], ax
mov cx,[bx]
inc ax
mov bx, 20h
mov [bx + si + off], ax
mov cx,[bx+si+off]
是正确的还是我有什么问题? 谢谢!