Рассылка закрыта
При закрытии подписчики были переданы в рассылку "О карьере и профессиональном развитии IT-специалистов" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Низкоуровневое программирование для дZeнствующих # 13
НИЗКОУРОВНЕВОЕ
ПРОГРАММИРОВАНИЕ
ДЛЯ ДZЕНСTВУЮЩИХ #13 |
ПРЕДУПРЕЖДЕНИЯ:
|
ПРИГЛАШАЮТСЯ:
|
САЙТ
HI-TECH:
|
>
В связи с присутствием в рассылке графики настоятельно рекомендуем подписываться
на HTML-версию. > В связи с затянувшимся "расширением канала" у нашего провайдера возможны задержки с выпуском рассылки. |
>
авторы. > корректоры. > художники/дизайнеры. > владельцы сайтов, авторы рассылок (для взаимной рекламы) > (хм) спонсоры и рекламодатели. |
>
архив рассылки > коллекция инструментов > исходные тексты > документация > учебники, статьи > форум и хм... гостевая книга |
НОВОСТИ ПРОЕКТА HI-TECH |
Хороший
сегодня выпуск :). Тринадцатый!! Для кого-то это, может быть, и несчастливое
число, но для нас, в общем-то, скорее наоборот :). 13 - это хорошее
число! Потому что новостей сегодня много :). И все - приятные!! Ура! |
СЛОВО МОДЕРАТОРУ RTFM_HELPERS |
ДZенствующий
народ!! В первый и последний раз объясняю вам политику партии (читай:
политику eGroup)! |
ВДОГОНКУ К ПРОШЛОМУ НОМЕРУ (ТРАДИЦИЯ, ОДНАКО!) |
DZ
Sashok или облажался, или времени у него не было проверять... Так или
иначе, DZ Kir777 вот какую очепятку нашел: |
УСОВЕРШЕНСТВОВАНЫЙ "СУПЕРПАИНТ" BY STS |
||
В прошлом номере я предложил дZенствующим братьям усовершенствовать наш "суперпаинт" (ну рисовалку, то бишь). Молодцы, народ! Хорошо поработали!
|
К ВОПРОСУ О СИСТЕМЕ СЧИСЛЕНИЯ (НЕСКЛАДУШКА) |
0A
программеров с утра "продукт" решили сделать, Чей копилефт не знаю, но амфибрахий еще тот! |
ОБРАЩАЕМСЯ К СЕГМЕНТУ ДАННЫХ |
|||||||||||||||
[1]
Зачем нужен сегмент данных, вы уже знаете - чтобы хранить в нем данные.
Зачем нужен сегмент кода, вы тоже знаете - чтобы хранить в нем последовательность
команд, которые должен выполнить ваш компьютер. Вводить всякую лабуду
в сегмент кода вы уже умеете. А вот вводить лабуду в сегмент данных
мы с вами сейчас научимся...
Что означает: байт по смещению 115 равно 00. И точка.
Но это не простая точка - это приглашение ввести НОВОЕ ЗНАЧЕНИЕ этого
байта. Когда вы его ввели, нужно нажать на пробел. 17B3:0115
00.1 75.2 AD.3 А
теперь делаем дамп памяти и смотрим, что за дрянь у нас получилась... [2]
Мы запросто умеем "присваивать" регистру любое значение (mov
AL,1C какой-нить), запросто можем "копировать" содержимое
одного регистра в другой (mov AL,BL например)... А сейчас мы с вами
научимся при помощи той же команды MOV еще и с сегментом данных работать.
mov
AL,55 В
первой строчке мы присвоили AL значение 55, а второй строчкой "скопировали"
значения регистра в байт по адресу 115. Правда, проще некуда? [3]
А еще вот какой изврат с этим можно делать: [4]
Низкоуровневый Paint мы с вами уже писали. Сегодня напишем низкоуровневый
дZенский EXCEL.
в
которой данные в формате HEX. И все, что нам нужно с ними сделать -
это просуммировать каждую "строчку", а сумму занести в третий
"столбец"... В EXCEL'е это делается элементарно... А на машинном
уровне, в общем-то, не намного сложней!! -e ds:115 17EA:0115 01.1 08.8 02.0 17EA:0118 09.2 02.9 00.0 03.3 03.1 00.0 04.4 04.2 17EA:0120 00.0 05.5 05.2 00.0 Вот так это у меня в DZEBUG'е выглядело :). Только я еще дамп посмотрел, правильно ли я ввел: 17EA:0110 03 E2 F3 CD 20 01 08 00-02 09 00 03 01 00 04 02 .... ........... 17EA:0120 00 05 02 00 6A 87 04 FF-76 FE 57 57 9A 5C 6C 87 ....j...v.WW.\l. Вроде правильно :)). Ну а программу я вот какую придумал: 17EA:0100 BB1501 MOV BX,0115 17EA:0103 B90500 MOV CX,0005 17EA:0106 8A07 MOV AL,[BX] 17EA:0108 024701 ADD AL,[BX+01] 17EA:010B 884702 MOV [BX+02],AL 17EA:010E 83C303 ADD BX,3 17EA:0111 E2F3 LOOP 0106 17EA:0113 CD20 INT 20 В
BX я занес адрес начала сегмента данных (он же - верхний левый угол
нашей таблицы). [5]
Видите? В качестве переменных "в компьютере" можно использовать
не только регистры, но и "куски" памяти! А уж там вы можете
клепать свои переменные в почти неограниченном количестве! Единственное,
что нужно иметь ввиду: с переменными-регистрами компьютер работает намного
быстрее, чем с переменными-в-сегменте-данных :). |
ОБЗОР ДZЕНСКИХ САЙТОВ - HOMEPAGE АЛЕКСЕЯ ФРУНЗЕ |
Однажды
монах спросил своего учителя: "В чем сущность дзен-буддизма?" :0102 MOV CX,0000 :0105 MOV AX,0001 :0108 LOOP 0105 Намного
позже этот дZенствующий монах научился программировать на TASM, MASM,
NASM, Watcom C, DJGPP; отбил почки, свернул шею своему учителю (интересно,
в какой последовательности он это делал), и уединился в трехэтажной
келье, откуда он время от времени являет миру свои PMode (и не только
PMode) откровения... |
АНОНС! |
В следующем номере - "второе погружение в регистры". Может быть... если мне на голову опять не уронят кирпич... |
мыльте-to:serrgio@gorki.unibel.by
и да пребудет с вами сила!
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
|
В избранное | ||