| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Вывод на экран. Как им овладеть |
| Автор: BCworm 24.1.2008, 07:51 | ||
Привет всем Я только начал изучать ассемблер. Возникла вот такая проблема вызванная как обчно отсутствием нормальной литературы. Это программка должна выполнять простенькое сложение переменной в памяти и конастаны типа слово. Я пытался сделать так чтобы сначало вывелась строка What is it Затем мне нужно чтобы выводились значения переменных x1 x2. а после результат их сложения Написав просто MOV DX,OFFSET X1 я естественно полчил абзац крякозблов с очень недвусмысленными намеками что такие фокусы не проходят. Как не искал литературу как выводить бональные значения переменных везде натыкался то на программу Hello то на программу Привет и т.д. Вот к примеру я запихнул Х1 в Al а Х2 в Bl а что дальше. В книгах все та же ситуация. Куча примеров как прибавить 1+1 но что дальше с этим делать,как вывести результат на экран. Та же ситуация с константами - везде про них написано но нигде нет нормального примера чтоб просто посмотреть синтаксис о выводе на экран я уже молчу. Вот и развлекаюсь тем что вывожу разные текстовые сообщения на экран а то что мне нужно вывести не могу. Я уже и для начинающих книжки читал, и для чайников, а вот для даунов пока не нашел. Может кто объяснит как? 1. Взять любую подходящую переменную 2. Сложить её с константой типа слово 3. Вывести на экран значения переменных 4. Вывести на экран сумму
|
| Автор: MAKCim 24.1.2008, 10:28 | ||
|
| Автор: Loginanton 22.2.2008, 16:03 |
| Здраствуйте. Подскажите пожалуйста в какой регист надо записывать инфу, чтоб по команде int 021 она вывелась на экран? |
| Автор: QueueZip 22.2.2008, 20:13 |
| Можно подобный пример под линукс (nasm)? |
| Автор: anwe 22.2.2008, 23:39 |
в dx. Но саму ее, а адресее (первого байта) |
| Автор: Loginanton 23.2.2008, 10:39 |
| anwe спасибо! Ща попробую |
| Автор: Loginanton 23.2.2008, 12:41 | ||
| Обьясните пожалуйста мне. Вот код проги:
Писал я её в hiew32, это ком - программа (*.com) Так вот, вместо того чтоб выводить в дос-окне число 45 и ждать нажатия клавиши, она выводит кракозяблы и ждёт нажатия |
| Автор: anwe 23.2.2008, 13:29 | ||
Если тебе надо вывести символ, то используется, кажется, функция 2 ДОС (точно не помню). И тогда в dl заносится код символа:
|
| Автор: Loginanton 23.2.2008, 14:15 | ||
Вот пример проги(опять же ком-прога):
Прога правда сложная довольно, но тут тоже выводится текст. Так вот тут такого как ты говоришь нету) Вот такой вопрос: а в ассемблере ваще можно так сделать чтоб какому то регистру присвоить какую то инфу и потом её через прерывание биос вывести? |
| Автор: anwe 23.2.2008, 20:43 | ||
С начала Вы писали про int 21h, а это ДОС'овское прерывание. Вот пример его использования (Ваш синтаксис мне не известен, это, наврено, fasm?) для masm'а, смысл понять можно:
Если же то почитайте про int 10h. Она выводит и отдельные символы и строки символов. Но и там если выводится символ, то надо поместить его код в регистр al, если строка - то ее адрес. |
| Автор: fish9370 27.2.2008, 00:44 |
| пиши прямо в видеобуфер, он находится по адресу [0B800h:0000h].. формат данных - [<byte ascii_symbol><byte color>][<byte ascii_symbol><byte color>] и т.д. пока страница не закончится (размер страницы 4000 байт (25*80*2)).. тебе будут доступны 4 видеостраницы, которые можно переключать.. эх, какие были времена.. |