我遇到汇编程序问题(16位) 当我输入“ abc”时,它也返回我abc。问题是,我如何获得对“ a”(第一个元素)的访问权? 我可以使用堆栈(用于字符)吗?
org 100h
Start:
mov ah,0ah
mov dx,input
int 21h
mov ah,9
mov dx,label
int 21h
mov ah,9
mov dx,input+2
int 21h
End:
mov ax,4c00h
int 21h
label db 10,13,"Your characters: $"
input db 6
db 0
times 8 db "$"
答案 0 :(得分:0)
是的,当然。
您的字符串只是一个字节序列。
更简单的方法是实际命名Int 21h/AH=0ah
服务使用的结构的所有部分:
label db 10,13,"Your characters: $"
input db 6
str_len db 0
string: times 8 db "$"
然后:
mov al, BYTE [str_len]
可用于在al
中加载字符串的长度(任何8位寄存器均可)。
mov al, BYTE [string + X]
将在(X + 1)th
中加载字符串的al
字符(对于在汇编时已知的X
-即静态)。
mov bx, X
+ mov al, BYTE [string + bx]
将在(X + 1)th
中加载字符串的al
字符(对于运行时已知的X
-即动态)。