Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
учись пользоваться отладкой и обработкой ошибок - вот и узнаешь

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:07 11-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
mov bh, filename+1

Вот ошибка, BL...

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 21:30 11-04-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
да ладно...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 22:24 11-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
    and     sp, not 3                       ; align stack to avoid AC fault

Поясните? Выравнивание указателя стека, чтоб он был парным или что?

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 15:22 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
выравнивае с помощью команды align подразумевает, что блок памяти будет начинаться к адреса памяти кратному параметра команды. потому что память с начала блока читается лучше чем с серидины
 
от такое от

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 15:35 15-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
блок памяти будет начинаться к адреса памяти кратному параметра команды

Какой блок памяти и что за параметр команды?

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 16:06 15-04-2012 | Исправлено: A1exSun, 16:19 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
память оперативная - планка. если нужно считать скажет 16 кбайт из памяти, то она быстрее считается если ее адрес будет кратен 16 - то есть она будет начинаться с какой то там внутренней ячейки, а если она будет начинаться например с 17 то дольше. надо к одному блоку получить доступ. потом перевести указатель на 1, потом ко второму и тд и тп

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:31 15-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
То есть начало программы будет располагаться по адресу кратному 16?

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 17:08 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет это для выравнивания блоков памяти внутри программы используеца. а начало программы и так с начала будет - потому что система так блок выделит.
 
Добавлено:
вот ты пишешь пишешь прохраму у тебя какой то критический блок для быстродействия, или дллка к которой будут потом обращаться разные программы а она в памяти сидеть, ты берешь точку входа или подпрограммы или дллки там выравниваешь.  
да я сам особо не рублю как этим пользоваться. видел пару кодов с ним и делаю так же

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 17:10 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как проверить наличие дискеты в флоповоде?

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:10 15-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
INT 13h функция 10h или 15h.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 21:34 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
--- ----------------------------------------------------------------------------
0aH ¦AT¦  ¦XT¦ чтение длинное: 512 байт + 4-байтоый ECC (код коррекции ошибок).
     вход: (как для подф. 02H)
    выход: Carry-флаг=1 при ошибке и код ошибки диска в AH.
           ES:BX => в буфере (данные сектора + 4 байта) * число секторов (из AL)
--- ----------------------------------------------------------------------------
 
--- ----------------------------------------------------------------------------
0dH ¦AT¦  ¦XT¦ Альтернативный сброс устройства
     вход: DL = диск
--- ----------------------------------------------------------------------------
 
 
Добавлено:
10H ¦AT¦  ¦XT¦ проверить готовность устройства
     вход: DL = диск
    выход: код ошибки диска (статус) в AH.
 
вот это наеврно - это готовность флоповода, но о наличии в нем дискеты ниче не говорит. при обращении к флоповоду дос говорит флоповод готов давай дискету, вот мне надо это сообщение давай дискету отключить и получить цифрой

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:39 15-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
15H ¦AT¦ читать тип диска (недоступна в XT BIOS)
     вход: DL = диск
    выход: AH = код устройства:
                0 = устройство DL отсутствует
                1 = дискета; логика замены диска отсутствует
                2 = дискета; логика замены диска доступна (большинство случаев)
                3 = твердый диск
 
А это?
Или можно первую дорожку считать. Считалась - диск есть.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 21:52 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да вот я думаб что если даже через инт 13 то дос разорется давай дискету. надо пробовать

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:56 15-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://www.codenet.ru/progr/dos/int_0027.php глянь это.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 22:05 15-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
чета не фурыкаит
Подробнее...

Цитата:
; ===============================================================
; ===============================================================
name NONAME
; ===============================================================
;   === Начало программы: ===
CSEG segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org  100h            ; COM файл
; ===============================================================
Start:
LEA BX, Finish
MOV AX,201h    ;число секторов
MOV CX,1    ;CH номер дорожки (цилиндра)(0-n); CL сектор 1
MOV DX,1    ;DH=0 (головка 0), DL=1 (дисковод 1 B
INT 13h
JNC OK
MOV ERRLVL,15h    ;ERROR_NOT_READY
OK:
MOV AL,ERRLVL
MOV AH,4ch
INT 21h
; ===============================================================
ERRLVL    db 0
Finish    db '$';db 512 dup (0)
CSEG ends
end Start
; ===============================================================  

 
ну я умудрылса пропустить mov ah, 2 и int13h - самая хлавное, а ты малчишь. тупил с головками забыл самое гланое  

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:17 15-04-2012 | Исправлено: bomzzz, 02:34 16-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Да откуда я знаю
 
Добавлено:

Код:
printCPUClock proc
    pushad
    mov     ah, 9
    lea     dx, CPUClock_msg
    int     21h
    in      al, 70h
    or      al, 80h
    out     70h, al
    mov     al, 0FEh
    out     21h, al
    hlt
    rdtsc
    mov     esi, eax
    hlt
    rdtsc
    sub     eax, esi
    mov     ebx, 1190000
    mul     ebx
    mov     ebx, 1000000
    div     ebx
    mov     edx, 0
    mov     ebx, 65535
    div     ebx    
    rol     eax, 16
    mov     dx, ax
    mov     al, 0
    out     21h, al
    in      al, 70h
    and     al, 7Fh
    out     70h, al
    shr     eax, 16
    mov     bl, 4
    call    printDecimal
    mov     ah, 9
    lea     dx, MHz_msg
    int     21h
    popad
    ret
printCPUClock endp

Почему под Windows XP в DOS среде пишет 0, хотя под MS-DOS все ок?
http://www.wasm.ru/article.php?article=hardzen отсюда взято.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 11:38 16-04-2012 | Исправлено: A1exSun, 12:33 16-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я специально для тебя усирался, все промежуточные коды положил чтоб ты мог посматреть

Цитата:
rdtsc  

ну патамуша под виндой дос программы работают в режиме эммуляции реального режима в защищенам, а под досом в реальном режими.  
   
http://rghost.ru/37608525
Кулаков. Программирование на аппаратном уровне.
http://rghost.ru/37608545
отличное пособие, этот кулаков преподает в вузе и покрайней мере думает своей головешкой, что объяснять людям надо так что они понимали. правда в книге  есть много неточностей, так что лучше вооружится дополнительно справочником

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:23 16-04-2012 | Исправлено: bomzzz, 15:04 16-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz

Цитата:
я специально для тебя усирался, все промежуточные коды положил чтоб ты мог посматреть

Я с флоппи только в теории знаком, когда-то пытался на низком уровне КПДП программировать, запрограммировал, сдал и забыл
 

Цитата:
Кулаков. Программирование на аппаратном уровне.

Посмотрю, спасибо. На удивление, определяет четко.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 16:39 16-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хд гораздо сложнее читать чем флоппи тупить с этими головками. а это был простенький примерчик , где легко присобачился вывод на экран. как раз для тебя

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:48 16-04-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru