Здравствуйте! Подскажите, пожалуйста, что сделать, чтобы каждое сообщение выводилось в новой строке. То что, в С обозначается как printf("бла-бла-бла\n");. А то все строки в многочисленных "Message db ..." идут одна за другой - неудобно. Заранее спасибо.
А в какой регистр записывать 10h? И нужно ли вызывать специальное прерывание для переноса каретки? То есть как вообще использовать это значение?
определи в проекте Код (Text): CrLf equ 13,10 и сможешь использовать так: Код (Text): szMultiline db "First line",CrLf,"Second line",0 tender_swallow ошибаешься. символ h явно лишний
Я новичок в асме, поэтому пока не очень разбираюсь в директивах, лексемах и проч. Jupiter Код (Text): CrLf equ 13,10 нужно писать там, где описываются данные, так? И как именно использовать Код (Text): szMultiline db "First line",CrLf,"Second line",0
это макро, про макросы можно прочитать очень хорошую статью Эдмонда, но на данном этапе может тебе не стоит сильно в это углубляться просто запомни что макрос подставляется препроцессором ещё до етапа компиляции, в данном случа текст будет CrLf просто заменён на 13,10 - тоже самое что бы ты сделал Ctrl-C Ctrl-V
Не работает. Может это оттого, что я поставил '$' не там, где надо в этом случае? Код (Text): Mess db "Test message$", 0Dh, 0Ah, 'S'
offtop: ну нет слов, какие нынче ленивые "новички" пошли... новичком то неназвать. Как трудно открыть пару примеров, из того самого масма, куча туторов там есть.... смотри и кури.... неужели это так сложно и проще назвать себя "новичком" и поспрашивать глупый вопрос пару дней?!
agent007 Зачем тогда форумы, общение людей, вопросы и ответы, если можно всех отослать к документациям? Кроме того стили программирования под DOS, Windows, *nix отличаются друг от друга. Везде есть свои тонкости. И если на вопрос по досовскому асму давать совет в недосовском стиле, то пользы от него будет как от пятого колеса.
RusFAQ не вы мучаете? Книги для кого пишут? Калашникова сначала почитайте, потом Iczeliona, и только после троекратного прочтения спрашивайте. Mess db "Test message", 0Dh, 0Ah, '$'
Насчёт как использовать - я так понимаю, под DOS,- см. описание функций 21h-ого прерывания. Код (Text): ; Вывод строки до доллара mov ah, 9 mov dx, offset Mess ; В сегменте, адресуемом DS int 21h ; Вывод символа mov ah, 02 mov dl, '0' int 21h ; Вывод любой строки mov ah, 40h xor bx, bx mov cx, 15 ; длина строки mov dx, offset Mess ; в сегменте, адресуемом DS int 21h
Encou, в сишных примерах можешь встретить так же следующие спецсимволы ASCII: в асме это можно заменить на следующее: Других вроде не встречал