Строка читается до тех пор, пока не будет нажата 1, а 1 будет в последней позиции строки. Я не знаю, почему мой выход отключен, например, вход: asd1, а выход: 1111 долларов. Во всяком случае, вот мой код
data segment
msg db 0dh,0ah,"Your string: $"
rev db 0dh,0ah,"Reverted: $"
s1 db 20 dup('$')
s2 db 20 dup('$')
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,msg
mov ah,09h
int 21h
lea si,s1
lea di,s2
mov bx,0
l1: mov ah,01h
int 21h
mov [si],al
inc bx
inc si
cmp al,31h
jnz l1
mov cx,bx
mov di,bx
dec1: dec si
loop dec1
mov cx,bx
l2: mov al,[si]
mov [di],al
dec di
inc si
loop l2
lea dx,rev
mov ah,09h
int 21h
mov cx,bx
l3: mov ah,02h
mov dl,[di]
int 21h
inc di
loop l3
mov ah,4ch
int 21h
code ends
end start
Изменить: Это то, что мой код выглядит сейчас, и если я ввожу asd1, тогда я получаю 1dserted