Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
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.


Яндекс цитирования
Rambler's TopShop Rambler's Top100
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Адрес подписки
Отписаться

В избранное