0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
||||||
1 | ||||||
Debug: как записать программу на машинном коде01.10.2012, 17:52. Показов 6670. Ответов 17
Метки нет (Все метки)
Всем привет! Изучаю ассемблер. Нужно выполнить программу в debug.exe. Не могу понять, как записать программу на машинном коде. Заранее спасибо!
0
|
01.10.2012, 17:52 | |
Ответы с готовыми решениями:
17
Как ассемблеровский код представить в машинном коде (единички и нули) ? Программа ввода-вывода текста в машинном коде Как исправить Debug Assert Failed в коде работы с матрицей? Вывод символа "?" на машинном коде |
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
|
|
01.10.2012, 18:58 | 2 |
Ввод ассемблерного кода непосредственно в отладчике DEBUG выполняется так.
Запускается DEBUG.EXE. На экране появляется приглашение: - На это приглашение нужно ответить так - а 100 Это означает, что вы просите у дебагера разрешение на ввод мнемонических команд ассемблера и располагаться они должны в сегменте команд, начиная со смещения 100h. Далее можно вводить сами команды и ввод очередной команды должен завершаться нажатием клавиши Enter: -a 100 XXXX:XXXX mov ax,100 ввели команду и нажали Enter XXXX:XXXX mov bx,200 ввели команду и нажали Enter ......................................... XXXX:XXXX если команду не вводить, а сразу нажать Enter, то опять появится символ приглашения - В этом примере символами ХХХХ:ХХХХ обозначены адреса команд, рассчитанные самим дебагером. Все числовые значения нужно вводить в 16-ричном виде. Вместо меток для условных переходов необходимо указывать непосредственно адреса тоже в 16-ричном виде.
1
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
|
02.10.2012, 05:40 [ТС] | 3 |
Спасибо! Это я понял, не подскажите ли Вы мне, как после этого вывести ответ? Что-то же она выполняет) Команда G выводит мне сообщение "Программа выполнена нормально".
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2012, 06:01 | 4 |
Эмиль, для того, чтобы программа выводила результат на экран нужно результат из числового вида перевести в строку, а затем эту строку вывести на экран функцией 9 прерывания 21h
1
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
|
02.10.2012, 07:57 [ТС] | 5 |
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2012, 09:26 | 6 |
1
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
|
02.10.2012, 10:48 [ТС] | 8 |
Спасибо. Я уже разобрался, все получилось как нужно) Теперь надо додумать, как сохранить в com файл и порядок)
Добавлено через 55 минут И у меня снова возникла проблема. Не могу сохранить. Через _N задаю имя, через _W пытаюсь сохранить. Ничего не выходит. Файл создается, но места он не занимает, а debug при запросе выдает "Файл не найден"
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2012, 10:56 | 9 |
Эмиль,
озаглавь файл n hello.bin Количество записываемых байтов заносится в регистр СХ, после чего осуществляется собственно запись командой w: r cx 400 w Для выхода из отладчика используется команда q
1
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
|
02.10.2012, 12:22 [ТС] | 10 |
Все сделал. Только, сохранил не BIN, а com. Как открыть его потом? "Файл не найден" выдает debug.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2012, 12:57 | 11 |
Эмиль, если есть СОМ-файл -- просто щелкни по нему мышью или Энтером и он должен запуститься или набери cmd имя_твоего_файла.com
1
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
|
02.10.2012, 13:28 [ТС] | 12 |
Mikl___, спасибо! Ты мне очень помог. Мышью или Enter'ом не получилось. Открылся и сразу закрылся, но через cmd выдал мне нужный результат. Я доволен) Еще раз спасибо за все подсказки)
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
||||||
02.10.2012, 13:38 | 13 | |||||
Эмиль, чтобы сразу не закрывался поставь перед int 20h две строки
0
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
||||||
02.10.2012, 14:05 [ТС] | 14 | |||||
Так?
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2012, 14:12 | 15 |
Эмиль, да так, только не видно где ты пересчитываешь результат и делаешь его вывод на экран
0
|
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 18
|
||||||
02.10.2012, 14:15 [ТС] | 16 | |||||
0
|
0 / 0 / 0
Регистрация: 02.04.2015
Сообщений: 3
|
||||||
01.10.2015, 17:39 | 17 | |||||
Вот у меня похожая программа:
Структура выходного сообщения программы: “Программа вычисления выражения Y=[(Х1+Х2)ХЗ–Х4]/Х5, где X1=..., X2=..., X3=..., X4=..., X5=...” Я совсем новичок.
0
|
Ушел с форума
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
02.10.2015, 04:08 | 18 |
0
|
02.10.2015, 04:08 | |
02.10.2015, 04:08 | |
Помогаю со студенческими работами здесь
18
Написать программу на машинном языке и степенного ряда, чтобы после решения ответы были равны Debug error в коде Как программировать на машинном языке? Debug assertion failed в коде шифра Гамильтона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |