64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
|
||||||
1 | ||||||
Ещё одна программа)30.08.2011, 13:45. Показов 1453. Ответов 6
Метки нет (Все метки)
Я уже разобрался с циклом, отладчиком и много чем ещё другим) Теперь ещё одна программа из книги, я попробую прокомментировать, а вы исправте ошибки и дополните.
Итак у меня есть программа которая будет читать определённый сектор диска C
0
|
30.08.2011, 13:45 | |
Ответы с готовыми решениями:
6
Ни одна программа не компилируется - пишет, что ошибка в первой строке .MODEL Tiny Использовать два модуля. Программа конкатенации двух строк. Одна в главном модуле, другая во вспомогательном. Ещё одна ошибка ещё одна графика |
10 / 10 / 1
Регистрация: 26.02.2011
Сообщений: 112
|
|
30.08.2011, 14:23 | 2 |
Функция записи в файл
bx - номер (handle) файла cx - число записываемых байт dx - данные для записи ah - номер функции (40h)
1
|
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|
30.08.2011, 14:28 | 3 |
По поводу использования переменных, наверное, лучше примеры в книгах по листать, так как использовать их можно разными способами. В данном случае создается переменная типа dd - двойное слово - 512 в данном случае, потому что длина сектора 512 байт, а в эту переменную. по идее, считывается содержимое сектора.
да в ds - должен быть адрес сегмента, а bx задает смещение относительно начала сегмента. Обычно в ds адрес сегмента данных, определенного в программе, а в bx - помещают переменную, определенную в этом сегменте данных. которая находится в сегменте Я вообще советую вам почитать какие-нибудь справочники по прерываниям и функциям DOS, чтобы более свободно ориентироваться во всем этом
1
|
10 / 10 / 1
Регистрация: 26.02.2011
Сообщений: 112
|
|
30.08.2011, 14:46 | 4 |
db - 1 байт
dw - 2 байта dd - 4 байта. когда ты пишешь db, dw или dd ты говоришь ассемблеру вставить эти данные в программу. т.е если ты напишешь db A113h или mov ax,13h то никакой разницы не будет потому что A113h это машинный код mov ax,13h, а data1 это всего лишь метка. то есть если ты пишешь mov dx,offset data1 ты заносишь в dx адрес метки, а если метка стоит перед data1 то ты получается задаешь адрес data1 например с помощью message db "Assembler" я вставляю в машынный код строку ассемблер Добавлено через 9 минут используйте справочники по ассемблеру и перерываниям дос. Это напиример Tech Help первая версия русская а дальше английские. Я например пользуюсь TechHelp 6 но он на английском, еслы вы хорошо разбираетесь в английском то магу вам посоветовать именно эту версию, она самая последняя
1
|
64 / 64 / 10
Регистрация: 26.06.2010
Сообщений: 332
|
||||||
30.08.2011, 15:07 [ТС] | 5 | |||||
Огромное спасибо вам обоим)))
Обязательно скачаю справочник по ассемблеру, но периодически буду и тут спрашивать. Ещё раз спасибо Добавлено через 7 минут
0
|
10 / 10 / 1
Регистрация: 26.02.2011
Сообщений: 112
|
|
31.08.2011, 14:28 | 6 |
Извините может что то не так работать очень спешил
0
|
10 / 10 / 1
Регистрация: 26.02.2011
Сообщений: 112
|
|
31.08.2011, 14:49 | 7 |
Читайте книгу Олега Калашникова "Ассемблер? Это просто! Учимся программировать"
или архив рассылки http://kalashnikoff.ru/Assembler/ (это когда то такая рассылка была)
0
|
31.08.2011, 14:49 | |
31.08.2011, 14:49 | |
Помогаю со студенческими работами здесь
7
И ещё одна сортировка :) Ещё одна история с locker'om А вот ещё одна фишка. Ещё одна тема про 3 из 4 Гб Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |