Я хочу создать программу на ассемблере, которая будет считывать строку с клавиатуры, затем преобразовывать каждую букву в другой таблице и затем сохранять ее в таблице по адресу [201].На [200] у меня есть счетчик символов моей строки.Вот что я сделал:
mov [0300h],88h ;thats the table that I want to convert to.(only 3 digits)
mov [0301h],83h
mov [0302h],0CEh
mov ah,01h ;insert string
int 81h
mov di,01h
start:
mov al,[di]
cmp al,00h ;not
sure about that. last char of string
should be /0.
je end
mov [0200h],di ;char counter.
inc di
mov bx,0300h
sub al,041h
;convert char
xlat
mov [di+01ffh],al
;store converted char to 201...
loop start
end:
**int 81h**
;reads chars until <cr> from keyboard.Starting address of input data buffer ES:DI+1
По какой-то причине DI принимает значение 0900 в конце моей программы.Любая идея, почему это не работает, или любая идея, что я могу сделать это любым другим способом?Большое спасибо.