Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 619
от 04.12.2006, 12:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 369, Экспертов: 27
В номере:Вопросов: 1, Ответов: 1


Вопрос № 64730: программа типа com со следующим "шестнадцатеричным содержимым": B8-23-01-05-25-00-8B-D8-03-D8-8B-CB-31-C0-CD-20 При просмотре программы AFD PRO У меня показывает следующее: 0100 42 INC DX 0101 382D CMP [DI],CH ...

Вопрос № 64.730
программа типа com со следующим "шестнадцатеричным содержимым":

B8-23-01-05-25-00-8B-D8-03-D8-8B-CB-31-C0-CD-20

При просмотре программы AFD PRO У меня показывает следующее:
0100 42 INC DX
0101 382D CMP [DI],CH
0103 3233 XOR DH,[BP+DI]
0108 2D3031 SUB AX,3130
010B 2D3035 SUB AX,3530
010В 2D3235 SUB AX,3532
010E 2D3030 SUB AX,3030
0111 2D3842 SUB AX,4238

почему не получаеться следующее:
11B7:0100 B82301 MOV AX,0123 ; Внести значение 0123h в AX
11B7:0103 052500 ADD AX,0025 ; Прибавить значение 0025h к AX
11B7:0106 8BD8 MOV BX,AX ; Переслать содержимое AX в BX
11B7:0108 03D8 ADD BX,AX ; Прибавить содержимое AX к BX
11B7:010A 8BCB MOV CX,BX ; Переслать содержимое BX в CX
11B7:010C 31C0 XOR AX,AX ; Очистка AX
11B7:010E CD20 INT 20 ; Конец программы

спасибо за ответ.
Отправлен: 29.11.2006, 12:18
Вопрос задал: Metrok (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Вiктор
Здравствуйте, Metrok!
Это из-за неверного понимания что такое символ и что такое код символа.
Если у вас в СОМ-файле записано
"B8-23-"
и так далее, то это СИМВОЛЫ. Т.е. первый байт - это символ "B" (а его код=0х42), второй - символ "8" (а его код=0х38), третий - симвлол "-" (код=0х2D).
т.е. вы вместо того чтобы записать символы с кодами B8, 23 и т.д. вы записали буквы, цифры и значки, которые описывают эти коды.
(другими словами, вместо "символ 1", "символ 2", "символ 3" и т.д. вы записали "первая цифра кода символа 1", "вторая цифра кода символа 2", "код символа тире/минус", "первая цифра символа 2", "вторая цифра кода символа 2", и т.д.)

Очевидно вы создали файл в чём-то вроде блокнота. А надо было использовать какой-нибудь шестнадцатеричный редактор, который позволяет записывать байты их кодами, (например, Hiew, hex workshop) или какими-нибудь продвинутыми текстовыми редакторами, которые имеют функцию шестнадцатеричного редактирования (вроде бы такая функция есть в Ultraedit, в GoldenPen точно есть).


---------
ни дня без строчки (но не получается)
Ответ отправил: Вiктор (статус: 9-ый класс)
Ответ отправлен: 29.11.2006, 17:20
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное