и хочу что бы она же и вывелась потом, но вывода не происходит
sstack segment stack
db 256 dup (?)
sstack ends
sdata segment
name1 db 10 dup ("$")
hello db 'hello world$'
sdata ends
scode segment
assume cs:scode,ds:sdata,ss:sstack
start:
mov ax, sdata
mov ds, ax
lea dx, name1
mov ah, 0ah
int 21h
mov ah, 09h
int 21h
finish
scode ends
end start
name1 db 10 dup ("$") А что делает эта строка?
Создаёт переменную в которой будет храниться введённая строка
10 раз делает db '$'
Смущает, что ds равно dx, предположу, что вы просто адрес не правильно указали для буфера, оффсет (dx) считается относительно ds, ds:0x0 стоит попробовать
Т.е. читаем строку с клавиатуры и заменяем её символами заранее заготовленные $?
Неправильные данные на входе в прерывание с функцией 0Ah. Первый байт буфера вода максимальное число принимаемых символов. На выходе второй байт буфера, число принятых символов.
Нет, мы вводим строку и заносим её в эту переменную Или я не понял вопроса?
А как это исправить, не подскажите, пожалуйста? Только начинаю учить TASM, поэтому не знаю как исправить
Я пытаюсь проверить соответствие того, что вижу в коде неизвестной мне постановке задачи.
С поправкой на то, что dup предварительно записывает в переменную знаки доллара это так.
внимательно читай справку к используемой функции
Обсуждают сегодня