![]() |
|
![]() ![]() ![]() |
|
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
Добрых суток!
У меня вот таков вопрос... Нужно написать подпрограмму для подсчета ненулевых элементов в сегменте стека(результат поместить в регистр CX) для процессора Intel 80x86 реальный режим работы.?! |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
iff,
Спасибо большое=)) вот только вспомнить не могу что такое "je" ?! |
|||
|
||||
Mikl_ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
![]() ![]() |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
Это означает, что если байт находящийся в ячейки со смещением SS:BP нулевой, то перейти к метке a20, если значение ненулевое, то продолжать выполнять инструкции далее по-порядку. В данном случае при ненулевой ячейки программа (см. сообщение выше) прибавит 1 к AX. А как вы понимаете, AX, у нас и есть счётчик ненулевых ячеек. Это сообщение отредактировал(а) iff - 21.1.2010, 16:14 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
а вот в самом начале перед всем кодом можно обнулить непосредственно AX и BP коммандой "xor" ?!
|
|||
|
||||
Mikl_ |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 6 Всего: 14 |
xpamoi,
хочешь mov ax,0 хочешь sub ax,ax хочешь xor ax,ax ![]() |
|||
|
||||
xpamoi |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 8.6.2009 Где: Vladivostok city Репутация: нет Всего: нет |
Mikl_,
спасибо большое =) учтем ![]() |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 5 Всего: 16 |
я бы не советовал использовать mov ax, 0, т.к. эта инструкция генерируют 3 байта машинного кода, а остальные, предлежанные xpamoi, в 2 байта. Возможно так же различия в скорости их выполнения.
Кстате, говоря возможно представленный мною код применчть несколько по иному: можнов bp загрузить смещение начальной ячейки. Например, если надо узнать сколько ненулевых ячеек с 5 по 10, то загрузите в bp 5, в cx 6 и обнулите ax. -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |