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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A1exSun
Код:
ByteToStr       PROC
                xor     ah,ah
WordToStr:      xor     dx,dx
DWordToStr:     push    si
...
                ret
ByteToStr       ENDP
 
...  
 lea di,CPUSPEED
 call dwordtostr
куда уж красивее...
признайся, сам писал?

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 20:32 08-04-2012
A1exSun



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

Цитата:
признайся, сам писал?

http://www.wasm.ru/article.php?article=hardzen отсюда исходник.
 
Собственно вопрос, а где результат там оказывается? В EAX бинарное число, да?
 

Код:
mov eax,cr4  
  and al,0FBh  
  mov cr4,eax

Еще я не понял, что это?

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 22:17 08-04-2012 | Исправлено: A1exSun, 00:39 09-04-2012
perdun



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

Цитата:
Еще я не понял, что это?

разрешает юзать rdtsc из 3-го кольца

Всего записей: 1499 | Зарегистр. 21-01-2004 | Отправлено: 06:53 09-04-2012
A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
perdun
Мне оно не нужно, т.к. пишу под MS-DOS 16 bit?

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мало ли что ты там пишешь. может в защищенный режим процессор переводишь. сверяйся с кодом с котрого передираешь.
это дополнительный регистр cr4, че он делает с ходу не скажу, ну вот как бы пишут тебе, меняется некий байт который за что то в работе процессора отвечает видимо
 
Добавлено:
http://ru.osdev.wikia.com/wiki/CR4
Управляющий регистр CR4 впервые появился в микропроцессорах Pentium (?). Он содержит флаги, управляющие различными расширениями базовых возможностей процессора и имеет следующий формат:
   
и далее по тексту
 
Добавлено:
TSD
Запрет отметки времени (бит 2). Когда установлен, позволяет использовать инструкцию RDTSC только программам, выполняющимся на нулевом текущем уровне привилегий. Когда сброшен, эту инструкцию может использовать любая программа.
 
Добавлено:
perdun прав оказался, чууть чуть ошибся

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 01:03 10-04-2012 | Исправлено: bomzzz, 02:49 10-04-2012
cp58

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A1exSun
Смотря где запуск происходит.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 11:39 10-04-2012
bomzzz



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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
Драйвер для windows порядка 7-8 строчек, учитывая DriverEntry.

Всего записей: 295 | Зарегистр. 06-12-2011 | Отправлено: 11:58 10-04-2012
bomzzz



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

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



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

Код:
    mov ah, 5Bh
    xor cx, cx ; обычный файл
    lea dx, filename+2
    int 21h

Чего не создает файл?
filename+2 - введенное с клавы имя файла. Пробовал по разному - имя.расширение, диск:\папка\имя.расширение...

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



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

Цитата:
    mov     ah, 3ch
    mov     cx, 0    
    lea     dx, filename
    int     21h
    jc     error
 
    mov    ah, 3eh
    mov    bx, ax
    int    21h

 
возможно DS не указывает на сегмент данных, или нет завершающего нуля в имени

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

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

Цитата:
filename+2 - введенное с клавы имя файла
тогда в конце 0 надо дописывать...

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 20:47 11-04-2012 | Исправлено: akaGM, 20:48 11-04-2012
A1exSun



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

Цитата:
нет завершающего нуля в имени

Точно.
akaGM
Нельзя

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



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

Цитата:
name NONAME
 
CSEG segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org  100h
 
Start:
    mov     ah, 5bh
    mov     cx, 0
    lea     dx, filename
    int     21h
    jc     error
 
    mov    ah, 3eh
    mov    bx, ax
    int    21h
error:
    int    20h
 
filename    db    "file.txt", 0
 
CSEG ends
end Start

у меня работает

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не помогло.
У меня и так 0 на том месте, т.к.:

Код:
    filename db 244, 0, 244 dup(0)

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

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не хочешь не показывай...
 
вообще можешь писать
 
mov ah, 5bh
int    21h  
 
что не так? не работает!

Всего записей: 24107 | Зарегистр. 06-12-2002 | Отправлено: 20:54 11-04-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://rghost.ru/37531661

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



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

Код:
    filename_in db "Введiть iм'я файлу: $"
    filename db 244, 0, 244 dup(0)
    file_exists db "Файл з таким iменем вже iснує.$"
    ...
    ; введення iменi файлу
    lea dx, filename_in
    call print
    lea dx, filename
    call scan
    xor bx, bx
    mov bh, filename+1
    add bx, 2
    mov filename[bx], 0
    ; створення файлу
    mov ah, 5Bh
    xor cx, cx ; звичайний файл
    lea dx, filename
    int 21h
    jnc file_created
    ; якщо була помилка
    lea dx, file_exists
    call print
    file_created:

Не работает.
 
Добавлено:
akaGM
Да ладно...
 
Добавлено:
bomzzz
Зачем мне тасм 4? У меня 5 вроде бы.

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



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

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



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

Код:
fn db "fio",0  
...
    mov ah, 5Bh
    mov cx, 0 ; звичайний файл
    lea dx, fn
    int 21h

Вот так работает. Почему код выше не работает?

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 21:02 11-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