![]() |
|
|
![]()
|
|
| Steil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.5.2010 Репутация: нет Всего: нет |
Написать на ассемблере подпрограмму вывода на вторую строку экрана значения регистра флагов в двоичной системе счисления без использования прерываний DOS и BIOS (прямой записью в видеопамять) для процессора Intel 80x86.
mov ax,0B800h mov es,ax mov di,0 mov es:[di],ax std mov cx,10 Repeat: xor dx,dx div cx xchg ax,dx add al,'0' stosb xchg ax,dx or ax,ax jne Repeat Объясните кто-нибудь код этой проги и ход её выполнения. И вообще соответствует ли она выше написанному заданию? |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Нет, не соответствует
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| Steil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.5.2010 Репутация: нет Всего: нет |
.model tiny color equ 0bh .code org 100h start: mov ax,3 int 10h mov ax,0B800h mov es,ax mov di,4*2 std mov ax,1234 call print mov ah,0 int 16h mov ax,4c00h int 21h print proc push ax cx dx di mov cx,10 Repeat: xor dx,dx div cx xchg ax,dx add al,\'0\' mov ah,color stosw xchg ax,dx or ax,ax jne Repeat pop di dx cx ax ret print endp end start А этот???, если да, то объясни пожалйуста как он работает, если можно по подробней=/ |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Нет.
А выводится должно содержимое регистра флагов каким образом? Одним числом (так: 0101010101010101) Или конкретно флаг и его значение (так: CF=0 ZF=1 CF=1 ...) Если одним числом, то можно так:
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| iff |
|
||||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Тут только есть один нюанс: если запускать в эмуляторе в ОС Windows, то работает не всегда (глюк в виндовсе). А вот например в ОС FreeDOS всё нормально.
для того что-бы в винде (точнее эмуляторе) работало тоже, можно добавить слебующий код в начале:
Он установит режим 03. Но поскольку...
Это сообщение отредактировал(а) iff - 23.5.2010, 20:04 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
||||
|
|||||
| Steil |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 15.5.2010 Репутация: нет Всего: нет |
Спасибо iff, ты офигенно помог!
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |