Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 753
от 25.07.2004, 23:30
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 5639 Отправлено ответов: 15262 Активность: 270.6 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Tigran K. Kalaidjian Статус: Профессиональный Общий рейтинг: 193 URL: Оптимизация ПК [Подробней >>] |
Стас Статус: Опытный Общий рейтинг: 125.78 [Подробней >>] |
PavPS Статус: Начальный Общий рейтинг: 124 [Подробней >>] |
_vt Статус: Профессиональный Общий рейтинг: 118.28 [Подробней >>] |
Artemy Статус: Опытный Общий рейтинг: 109.38 Телефон: 8 905 549 38 66 [Подробней >>] |
St Статус: Профессиональный Общий рейтинг: 104.81 [Подробней >>] |
Горячев Игорь Статус: Доверительный Общий рейтинг: 117.44 [Подробней >>] |
Евгений Иванов Статус: Профессиональный Общий рейтинг: 133.42 URL: Super Assembler Software Телефон: НСС +7 831 3107039 [Подробней >>] |
flasher Статус: Доверительный Общий рейтинг: 105.61 [Подробней >>] |
Bob Johnson Статус: Профессиональный Общий рейтинг: 136.47 URL: Программирование [Подробней >>] |
bocha Статус: Опытный Общий рейтинг: 133.51 [Подробней >>] |
Игорь Гаврилюк Статус: Опытный Общий рейтинг: 139.33 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 116.55 [Подробней >>] |
Dragoon Статус: Доверительный Общий рейтинг: 108.51 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 5608. Привет, Dragoon! Переведи в ассемблер, если не сложно, я паскаль плохо знаю. С ув. Роберт ... (ответов: 1)
Вопрос № 5609. Здравствуйте, уважаемые эксперты! У меня вопрос про задержку времени. Есть процедура задержки: ;bx... (ответов: 4)
Вопрос № 5612. Здравствуйте, уважаемые эксперты! Спасибо за предыдущие ответы. 1)Решил тут создать "свою"... (ответов: 4)
Вопрос № 5613. Здравствуйте эксперты!!! Помогите, некак не могу понять почему вылазиет ошибка, и прога закрывается!... (ответов: 2)
Вопрос № 5614. Ответ к моему вопросу № 5602 1)Как удалить саму себя? Проверьте плиз, если не лень, работает-ли эт... (ответов: 2)
Вопрос № 5615. у меня дурацкий вопрос: как на ассемблере написать простейшую прогу,в которой пользователь вводил бы... (ответов: 1)
Вопрос № 5618. Привет эксперты! Объясните по подробней плзз каждый из регистров: CS, DS, SS, ES, FS, GS. Заранее сп... (ответов: 1)
Вопрос № 5619. Здравствуйте! Евгений Иванов, пример который ты прислал хороший, но сложноватый.Нельзя ли набросать ... (ответов: 1)
Вопрос № 5621. Привет! Чем можно дебагнуть svchost.exe? Пробовал IDA, не помогает.... (ответов: 3)
Вопрос № 5623. Здарова люди. Спрошу не про ассемблер. 1.GIF Как всё-таки использовать сжатые изображения в проге ... (ответов: 3)
Вопрос № 5625. Здравствуйте Уважаемые Эксперты! С ассемблером я столкнулся совсем недавно, поэтому мой вопрос может... (ответов: 2)
Вопрос № 5628. ЧТО ДЕЛАЕТ OR? Я тут Flat assembler выкачал, посмотрел пример текстового редактора, и непонял нескол... (ответов: 5)
Вопросов: 12, ответов: 29
Вопрос № 5608 |
Привет, Dragoon!
Переведи в ассемблер, если не сложно, я паскаль плохо знаю.
С ув.
Роберт
Вопрос отправлен: 18.07.2004, 11:07
Отправитель: robert
[Следующий вопрос >>] [Список вопросов]
Отвечает Tigran K. Kalaidjian
Приветствую Вас, robert!
Это Вы про что ?
Ответ отправлен: 19.07.2004, 09:07
Отправитель: Tigran K. Kalaidjian
Вопрос № 5609 |
Здравствуйте, уважаемые эксперты!
У меня вопрос про задержку времени.
Есть процедура задержки:
;bx - время задержки (в 1/18,2 сек)
Sleep proc
xor ax, ax
int 1Ah
add bx, dx
@Sleep1:
int 1Ah
cmp bx, dx
jnz @Sleep1
ret
Sleep endp
но самое меньшее время на которое
способна задержать данная процедура
это 1/18 сек, что в некоторых случаях
оказывается очень большим.
Как сделать время задержки меньше???
И главное, эта задержка на разных
машинах должна задерживать на одинаковое
время. Вот и все. Заранее благодарен.
Вопрос отправлен: 18.07.2004, 18:34
Отправитель: Vitaliy (Lytonin@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Стас
Добрый день, Vitaliy!
Можно через программирование таймера.
Недавно занималься этим.
Задержки от 1/1193181 сек.
Ответ отправлен: 18.07.2004, 22:57
Отправитель: Стас
Отвечает Tigran K. Kalaidjian
Добрый день, Vitaliy!
См. в приложении прогу на FASM под win (комментарии сбились, так что скопируйте куда-нибудь - всё выправится), а вообще варианты есть в FAQ: http://kalaidjian.narod.ru/rusfaq.rar
Пример ниже из этого же FAQ
Приложение:
Ответ отправлен: 19.07.2004, 15:12
Отправитель: Tigran K. Kalaidjian
Отвечает PavPS
Добрый день, Vitaliy!
Попробуй взять каку-нибудь команду, ну например xor eax,eax
подсчитай а кол-во тактов ч/з RDTSC, сопоставь со временим, ну и посчитай сколько интераций должно быть в цикле из этих команд, чтобы прошло столько времени, сколько те недо.
Ответ отправлен: 18.07.2004, 21:28
Отправитель: PavPS
Отвечает _vt
Приветствую Вас, Vitaliy!
Если пишешь под Win32, надежнее всего использовать multimedia timers - как минимум 1/1000 секунды задержки они обеспечат. Подробности - в MSDN. Если нету - обратись ко мне на e-mail, пришлю тебе статью про Multimedia Timers. Если под DOS - используй команду RDTSC - пример кода есть у Тиграна в FAQ.
* Origin : Life begins at 1000Mhz!
Ответ отправлен: 19.07.2004, 05:12
Отправитель: _vt
Вопрос № 5612 |
Здравствуйте, уважаемые эксперты! Спасибо за предыдущие ответы.
1)Решил тут создать "свою" кнопочку в видовс, да вот проблемма: не совсем знаю, как это сделать :)
Я делаю так: создаю окно, потом ещё одно ("моя" кнопочка), ставлю его на первое окно, как MDI_CHILD и обрабатываю от него сообщения. Так вот, собственно и проблемма: я не знаю, как рисовать _нажатую_ кнопочку... Не нажатая рисуется в WM_PAINT, а нажатая не хочет в WM_LBUTTONDOWN. Помогите, пожалуйста... Желательно с примерами :) Если кто делал свой какой-нить класс, то пришлите, пожалуйста. Буду премного благодарен :)
2)Я тут задавал вопрос про массивы в MASM (№5373)... Так вот, я имел ввиду массивы строк... Длина которых разная... И чтобы можно было к ним "удобно" обращаться... Это можно как-то сделать?
Заранее спасибо за ответы ;)
Вопрос отправлен: 19.07.2004, 12:29
Отправитель: UKY
[Следующий вопрос >>] [Список вопросов]
Отвечает Artemy
Доброе время суток, UKY!
1. Установи флажок нажата/или отпущена кнопка и при перерисовке формы окна выводи кнопку в зависимости от этого флажка. А по WM_LBUTTONDOWN поменяй меняй флаг и обнови окно.
2. Используй массив укзателей... у них же размер одинаковый.
title db 'my message',00h
txt1 db 'text string',00h
txt2 db 'long text string',00h
txt3 db 'very long text string',00h
pointers_array dd offset txt1
dd offset txt2
dd offset txt3
...
mov esi,offset poiters_array
mov ecx,3
l1:
push ecx
push esi
mov eax,[esi]
invoke MessageBox,0,eax,offset title,0
pop esi
add esi,4
pop ecx
loop l1
Ответ отправлен: 19.07.2004, 15:06
Отправитель: Artemy
Отвечает St
Привет, UKY!
Вы хотите сделать кнопку совсем с нуля? Owner-Drawn button вам не годится? Там при нажатии приходит сообщение, в обработчике которого и нужно перерисовывать картинку на кнопке.
St
Ответ отправлен: 19.07.2004, 15:53
Отправитель: St
Отвечает Горячев Игорь
Здравствуйте, UKY!
1. Почему MDI_CHILD??? Вроде должно быть WM_CHILD, и все вроде работает.
2. На самом деле массив из строк в асме сделать низя. "Массив" должен содержать определенные типы данных (dd, dw, db и т.д). Можно попробовать сделать массив из указателей на строки и через этот массив обращаться к уже определенным строкам (читай: массивам байт). Так что ежели ещешь удобств welcom to C++, Delphi, VB и иже с ними!
Ответ отправлен: 20.07.2004, 23:19
Отправитель: Горячев Игорь
Отвечает Евгений Иванов
2. Создавай свои строки разной длины, а их адреса заноси в массив.
Бывай!
* EMan: -=- Любовь всегда неразделённая... =-=
Ответ отправлен: 21.07.2004, 17:32
Отправитель: Евгений Иванов
Вопрос № 5613 |
Здравствуйте эксперты!!!
Помогите, некак не могу понять почему вылазиет ошибка, и прога закрывается!!!
masm32 oc winxp
Приложение:
Вопрос отправлен: 19.07.2004, 13:07
Отправитель: Ujin (twixt@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Стас
Приветствую Вас, Ujin!
1) добавь "invoke AllocConsole" вначале.
2) gethostbyname требует "A pointer to the null terminated name of the host.", а ReadConsole возвращает строку заканчивающуюся на 0dh,0ah. Решение - после ReadConsole:
lea edi,SERVER
or ecx,-1
mov al,13
cld
repnz scasb
dec edi
xor al,al
stosb
3)Нужно использовать либо gethostbyname, а потом:
mov eax,[eax+0ch], mov eax,[eax], mov eax,[eax]
либо inet_addr,offset SERVER.
4) Дальше опять, вводишь номер порта как строку символов, а htons берет первый символ из строки...
Все желание разбираться пропало....
Возьми в руки дебаггер!
Ответ отправлен: 21.07.2004, 15:29
Отправитель: Стас
Отвечает flasher
Приветствую Вас, Ujin!
Вместо invoke gethostbyname,offset SERVER
mov eax,[eax+12]
ставь invoke inet_addr, offset SERVER
и всё ок будет.
Ответ отправлен: 19.07.2004, 15:39
Отправитель: flasher
Вопрос № 5614 |
Ответ к моему вопросу № 5602 1)Как удалить саму себя?
Проверьте плиз, если не лень, работает-ли этот код.
На XP-инглиш работает, но у меня большие сомнения насчёт работаспособности в других NT.
Приложение:
Вопрос отправлен: 19.07.2004, 16:47
Отправитель: Flashik
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, Flashik!
Вероятнее всего твой код работает только из-за того, что на запуск нового процесса (командного интерпретатора) требуется время, в течении котого ты успеваешь завершить свой процесс. т.е. в один прекрасный момент это не пройдет.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 20.07.2004, 12:41
Отправитель: Bob Johnson
Отвечает _vt
Здравствуйте, Flashik!
Этот код работает у тебя только потому, что запущенный командный процессор дожидается завершения основной программы. Если ты напишешь большую программу, которая сразу после вызова командного процессора не станет завершаться, то ничего не сработает.
* Origin : Life begins at 1000Mhz!
Ответ отправлен: 20.07.2004, 20:10
Отправитель: _vt
Вопрос № 5615 |
у меня дурацкий вопрос:
как на ассемблере написать простейшую прогу,в которой пользователь вводил бы любые числа
(целые,вещественные и т.п., но в десятичной СС!), а прога извращалась как-нибудь над ними
(складывала, вычитала, умножала их) и выдавала ответ, снова же, в десятичной СС?
Ну,например,такую ,как на C++:
#include
int main()
{
int a,b,c;
cout<<"введите первое число: ";
cin>>a;
cout<<"введите второе число: ";
cin>>b;
c=a+b;
cout<return 0;
}
P.S. Если можно обойтись без сопроцессора, то лучше обойтись без сопроцессора...
Вопрос отправлен: 19.07.2004, 21:14
Отправитель: aidan (aidan@tut.by)
[Следующий вопрос >>] [Список вопросов]
Отвечает bocha
Добрый день, aidan!
вводишь строку и переводишь в число, дальше извращаещься, затем переводишь число в строку и выводишь. Если хочешь упростить себе жизнь подключи сишную rtl(для мсвс она помоему называется msvcrt.lib) и пользуйся функциями scanf, printf, но помни, что любая библиотека - это лишние килограммы. операции над 80-битными числами конечно можно производить и без сопроцесора, но это уже будет действительно извращение
Ответ отправлен: 20.07.2004, 02:38
Отправитель: bocha
Вопрос № 5618 |
Привет эксперты!
Объясните по подробней плзз каждый из регистров: CS, DS, SS, ES, FS, GS.
Заранее спасибо!
Вопрос отправлен: 20.07.2004, 18:27
Отправитель: andrey
[Следующий вопрос >>] [Список вопросов]
Отвечает PavPS
Добрый день, andrey!
http://www.wasm.ru/article.php?article=pipm05
а лучше все статьи
Ответ отправлен: 20.07.2004, 20:25
Отправитель: PavPS
Вопрос № 5619 |
Здравствуйте!
Евгений Иванов, пример который ты прислал хороший, но сложноватый.Нельзя ли набросать самый простой пример вывода
gif файла на экран.
С ув.
Роберт
Вопрос отправлен: 20.07.2004, 18:43
Отправитель: robert
[Следующий вопрос >>] [Список вопросов]
Отвечает Евгений Иванов
Здравствуйте, robert!
GIF-файл - это упаковка по LZW-алгоритму. Бери исходник рапаковщика в моей программе PlayGif, получай точки, а уж потом выводи их на экран.
* EMan: -=- Любовь всегда неразделённая... =-=
Ответ отправлен: 21.07.2004, 20:46
Отправитель: Евгений Иванов
Вопрос № 5621 |
Привет!
Чем можно дебагнуть svchost.exe? Пробовал IDA, не помогает.
Вопрос отправлен: 20.07.2004, 20:44
Отправитель: andrey
[Следующий вопрос >>] [Список вопросов]
Отвечает PavPS
Доброе время суток, andrey!
SoftIce - forever!!!! Ента фихня састо пользует CreateFile & ReadFile. Н мож ещё чё. Ставь на них bpx в SoftIce. Можно найти какието ф-ии ч/з IDA и потом ставить бряки - ну вобщем воля Твоя...
Ответ отправлен: 20.07.2004, 21:04
Отправитель: PavPS
Отвечает bocha
Приветствую Вас, andrey!
олаживают отладчиками, а ида, на сколько я помню - Интерактивный ДизAссемблер, можешь попробовать СофтАйс или TRW2000
Ответ отправлен: 21.07.2004, 05:56
Отправитель: bocha
Отвечает Игорь Гаврилюк
Доброе время суток, andrey!
Очень сложная тема - этот экзешник перенасыщен всякой всячиной)... И ДЛЛ его - такой же опухший.
Хакеры хвалят СофтАйс.
А IDA - инструмент для реверс-инжиниринга. Это несколько иное, нежели дебаг.
Успехов.
Ответ отправлен: 21.07.2004, 03:31
Отправитель: Игорь Гаврилюк
Вопрос № 5623 |
Здарова люди.
Спрошу не про ассемблер.
1.GIF
Как всё-таки использовать сжатые изображения в проге (например GIF,JPEG)? Нужно создать директиксовую поверхность с картинкой. Для этого обычно грузится BMP-ресурс, то есть имеем дескриптор HBITMAP. Потом создаём контекст CreateCompatibleDC(NULL), выбираем в него битмэп. И, наконец делаем блиттинг этого контекста на Surface.
То есть, если короче сформулировать вопрос: как создать контекст с изображением, загруженным из GIF'а? (Не важно из внешнего файла или из ресурсов.)
Есть DirectXSDK, MSDN(старый), так и не нашёл ничего. Есть примеры для бейсика, но они мне нафиг не нужны.
2.DirectSound
Не буду вдаваться в подробности. Использую в своей проге DSound. Так вот в Win2000 работает нормально. В Win98,WinXP - глючит, причём по-разному: либо просто звука нет, либо даже exe-шник не запускается. DxDiag на всех системах пишет, что всё ок. Может кто сталкивался с такой проблемой.
/*Желательно решение средствами WinAPI и DirectXAPI. MFC я не юзаю. (хотя на худой конец...)*/
Спасибо.
Вопрос отправлен: 21.07.2004, 02:06
Отправитель: ПАПА
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Здравствуйте, ПАПА!
2. Опиши, как использовал DirectSound. Создаешь ли ты primary buffer? попробуй не создавать или создавать (если раньше не создавал). НЕ используй DirectSoundNotify - у меня на новой карте (audigy2) он совершенно не хочет нормально работать. Используй получение play position в буфере, чтобы определить, куда его пополнять.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 22.07.2004, 00:58
Отправитель: Bob Johnson
Отвечает bocha
Приветствую Вас, ПАПА!
1.сперва переведи gif, jpeg в битмап, винда внутренне эти форматы не поддерживает, самый маленькй исходник для распаковки, из встреченых мной имеет около трех тыс строк кода на С. Кстати в примерах на басике используются те же самые апишные функци и коминтерфейсы, которые ты можешь использовать и на асме и на си, так, что "нафиг не нужны" - это ты зря. Любой пример с басика на си (из дхсдк)переводится элементарно, а если немного знаешь мфц - то за 5-10 минут. В мсдн введи в поиске "image" , и если при установке индексировал все, то не может быть, что бы при этом запросе он тебе не выдал IDXSurfaceFactory::LoadImage Method
2.Я вдавться в подробности то же не буду, но у тебя ошибка в я_не_знаю_какой строке, а еще я не знаю какой дхсдк ты используешь....
Ответ отправлен: 21.07.2004, 07:41
Отправитель: bocha
Отвечает _vt
Доброе время суток, ПАПА!
1) У меня MSDN за июль 2000г. Трехминутное лазание по нему нашло следующее:
=====
The IDXSurfaceFactory interface provides methods to create and load data into DXSurface data objects. Perhaps the most commonly used method of this interface is CreateSurface, which creates an uninitialized DXSurface of a specified size and pixel format. Also very useful is the LoadImage method, which translates an image from a number of common image formats (such as .GIF, .JPG, and .BMP) and stores the result in a new DXSurface.
======
COM-интерфейсы - это нормально, или ты ими тоже не пользуешься? ;)
Если все же надо прямое чтение/запись GIF, то на этот счет имеется в том же MSDN:
======
Microsoft Corporation obtained a license to the Unisys LZW patents in September, 1996. Microsoft's license does not, however, extend to software developers or third parties who use any Microsoft toolkit, language development, or operating system products to provide GIF read/write and/or any other LZW capabilities in their own products (for example, by way of DLLs and APIs).
======
Другими словами, по крайней мере до 2000г., M$ и не планировала поддерживать GIF-формат - работай с ними вручную.
2) У тебя ошибка в 30 строке! ;-)
* Origin : Life begins at 1000Mhz!
Ответ отправлен: 21.07.2004, 03:59
Отправитель: _vt
Вопрос № 5625 |
Здравствуйте Уважаемые Эксперты!
С ассемблером я столкнулся совсем недавно, поэтому мой вопрос может показаться глупым/"детским" но надеюсь на Ваше поддержку моего стремления изучить это язык.
Вот мой вопрос.
Как процессор определяет что перед ним число со знаком или без знака при сложении чисел и установки флага OF
К примеру если допустить что результат имеет единицу в значащем бите, то как узнать что не число со знаком а положительное число с большим диапозоном значений, и наоборот.
Большое спасибо за ответ.
Вопрос отправлен: 21.07.2004, 05:21
Отправитель: RVM
[Следующий вопрос >>] [Список вопросов]
Отвечает bocha
Приветствую Вас, RVM!
А он никак не определяет, знаковое число или нет. Интерпретация знакового бита целиком и полностью лежит на твоей совести.
Ответ отправлен: 21.07.2004, 06:10
Отправитель: bocha
Отвечает Ayl
Здравствуйте, RVM!
А никак он этого не определяет. Он просто формирует флаги в результате операции. А уж программист сам определяет, проыерять их или не проверять (например, переход ja не проверяет флаг OF (беззнаковое сравнение), а переход jg - проверяет (знаковое сравнение)).
Ответ отправлен: 21.07.2004, 17:35
Отправитель: Ayl
Вопрос № 5628 |
ЧТО ДЕЛАЕТ OR?
Я тут Flat assembler выкачал, посмотрел пример текстового редактора, и непонял несколько
записей. Вот одна из них:
or eax,eax
jz end_loop
jz переходит на метку, если ZF установлен. А что делает or?
Я почитал файл помощи, п.2.1.5, но ничего вразумительного не увидел.
А еще такая запись:
xor eax,eax
jmp finish
Знаю, я чайник.
Спасибо за помощь.
Вопрос отправлен: 21.07.2004, 23:22
Отправитель: kDenis
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Добрый день, kDenis!
or eax, eax ничего не делает, кроме того, что устанавливает флаги. Точнее, если eax будет равен 0, то флаг ZF будет установлен, в противном случае он будет сброшен. Это одна из быстрых (и заодно коротких по коду) проверок регистра на равенство 0. Также можно использовать:
and eax, eax; test eax, eax
xor eax, eax сбрасывает регистр eax в 0.
Ответ отправлен: 22.07.2004, 11:53
Отправитель: Ayl
Отвечает Горячев Игорь
Приветствую Вас, kDenis!
На самом деле все просто :)
OR приемник,маска. Выполняет операцию логического "или" над соответствующими парами битов операндов приемник и маска, то есть: приемник = приемник OR маска. OR устанавливает флаги: CF = OF = 0; SF,ZF,PF - значение зависит от результата операции.
В данном случае (OR eax,eax) приемник и маска равны, след. если в eax был 0 то ZF = 0, иначе ZF = 1. Это оптимизированный эквивалент таких строчек:
cmp eax,0
je end_loop
XOR приемник, источник. Выполняет операцию логического исключающего "или". Устанавливает флаги OF, CF, SF, ZF, PF (в зависимости от результата операции).
В данном случае xor eax,eax обнуляет eax. Это самый быстрый способ обнулить регистр.
Ответ отправлен: 22.07.2004, 22:46
Отправитель: Горячев Игорь
Отвечает PavPS
Добрый день, kDenis!
Такие примитивные вещи в справочнике/хэлпе мож даже не искат. Jxx ориентируются по флагам от последней операции, которая их изменяет (есть комм, котор. не трогают флаг. регистр). or eax,eax - это тоже самое, что и cmp eax,0; только эта комманда занимает меньше байт. Or - логическое сложение. Флаг Z будет только, когда 0+0. отсюда и ответ: проверка на ноль. Xor eax,eax - классика :) - j,обнуление - эквивалентно mov eax,0. Такие вопросы часто от непонимания работы таких комманд. Xor - надо ваще на него молиться... :)
Ответ отправлен: 22.07.2004, 00:08
Отправитель: PavPS
Отвечает bocha
Доброе время суток, kDenis!
or dest, mask- выполняет логическое или над битами приемник-маска, результат записывается в приемник, of-сбрасывается, cf,zf-в зависимости от результата
or eax, eax ;один из способов проверки регистра на равенство нулю
xor eax,eax;очистка регистра
Ответ отправлен: 22.07.2004, 02:56
Отправитель: bocha
Отвечает Dragoon
Приветствую Вас, kDenis!
1)
or eax,eax
jz label
Это аналогично
cmp eax,0
jz label
ZF будет установлен только если EAX = 0
Для примера:
eax = 4
11
or
11
-------
11
ZF <> 0 следовательно прыжка не будет
Ответ отправлен: 24.07.2004, 18:48
Отправитель: Dragoon
Форма отправки вопроса |
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
(C) 2002-2003 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (25) C / C++ (13) Perl (4) Builder / Delphi (17) Pascal (24) Basic / VBA (7) Java / JavaScript (5) PHP (16) Криптография (10) WinAPI (11) Радиоэлектроника (8) |
Пользователю Windows 95/98/Me (45) Windows NT/2000/XP (58) "Железо" (43) Поиск информации (16) |
Администратору Windows NT/2000/XP (37) Linux / Unix (19) |
Юристу Гражданское право (12) Семейное право (9) Трудовое право (9) КоАП (7) |
Отправить вопрос всем экспертам выбранной рассылки.
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Адрес подписки |
Отписаться |
В избранное | ||