|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2012, 15:30 | #1 |
Регистрация: 02.12.2010
Сообщений: 8
|
Вывод на экран (assembler)
Всем привет)
Собственно говоря вот код. Я хочу добиться вывода на экран того, что загоняется в буфер - но кроме последовательно выводящихся символов таблицы ASCII - пока не выходит. Не могу понять - почему в переменную perem1 не загоняется начальный адрес смещения буфера, для последующего вывода на экран этого участка кода (я же по идее квадратными скобками типа говорю считать по этому адресу?) Понятно что это всё равно будут ASCII символы) Код:
|
08.02.2012, 20:16 | #2 |
Пользователь
Регистрация: 27.01.2012
Сообщений: 37
|
во-первых, содержимое perem1 зартется при чтении файла,
во-вторых, perem1 всегда указывает на одно и то же место в памяти, и конструкция [perem1] загружает значение одного и того же байта. нужно, за perem1 объявить например perem2, читать файл туда, и при выводе : Код:
|
08.02.2012, 21:23 | #3 | |
Регистрация: 02.12.2010
Сообщений: 8
|
Вот те на) Это не понятно...хотя - это типа получается память того места которое мы определили под переменную param1 будет заполнятся считанными из файла байтами? я вообще хотел поместить в переменную адрес начала буфера...а вот то что переменная где-то рядом сама окажется - не подумал. Если я сейчас вообще правильно Вас понял)
Цитата:
Спасибо большое за ответ - очень признателен) А вот ещё такой момент: в отладчике когда пытаюсь прогнать код - изначально все сегменты имеют одно и то же значение - так как это типа COM файл и => 64Кбайт - один сегмент. Так первые пару шагов всё идёт по коду - а потом левые инструкции начинаются и сегменты начинают меняться - хотя прога ещё не завершилась) В чём может быть подвох? Отладчик AFD. Спасибо) |
|
08.02.2012, 21:37 | #4 | |
Форумчанин
Регистрация: 01.07.2011
Сообщений: 423
|
Цитата:
Надо в отладчике,когда доходите до команды int 21h, или любого другого прерывания, перескакивать через нее, сразу же переходя на следующую за прерыванием команду в вашей программе.
Со мной можно встретиться на www.clipper.borda.ru
|
|
08.02.2012, 22:17 | #5 | |
Пользователь
Регистрация: 27.01.2012
Сообщений: 37
|
Цитата:
про отладчик не скажу... убедись что собирается именно com-файл, посмотри что за инструкция, с которой начинаются проблемы. вообще-то, под буфер памяти формально никто не выделял, и черт его знает где располагается стек. когда я практиковался на tasm, то для com-файлов стек был в конце сегмента, и все остатки от 64к начиная с конца кода были свободно доступны. Для exe стек создавался в сегменте данных сразу за последними определенными данными, и, явно не объявляя буфер через dup с большим числом, использовать области за последним выделенным байтом было нельзя... Так что попробуй выделить под буфер несколько килобайт если ничего не поможет... |
|
09.02.2012, 09:57 | #6 |
Регистрация: 02.12.2010
Сообщений: 8
|
Большое спасибо за ответы!!!
|
09.02.2012, 09:59 | #7 | |
Регистрация: 02.12.2010
Сообщений: 8
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод данных на экран в Assembler | sap_ax | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 28.12.2011 20:15 |
Вывод файла *.тхт на экран (assembler) | Kelevra23 | Помощь студентам | 0 | 01.12.2011 15:57 |
Вывод пикселя на экран (Assembler) | Demonhunterus | Помощь студентам | 0 | 30.09.2011 19:39 |
Assembler - ввод данных (имени и фамилии) с клавиатуры и вывод на экран | МартинИ | Помощь студентам | 1 | 25.05.2010 00:40 |
вывод информации на экран о состоянии памяти на текущем диске А(assembler) | alien9356 | Фриланс | 2 | 15.06.2009 15:41 |