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

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 690
от 26.02.2007, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 363, Экспертов: 25
В номере:Вопросов: 13, Ответов: 20


Вопрос № 76056: здраствуйте. у меня такой вопрос. где можна найти исходник для Turbo Assembler, который показывает формат компа IBM PC - АТ или ХТ. слышал что есть книжка "Р. Джордейн.- Справочник программиста персональных компьютеров типа IBM PC, XT и AT&q...
Вопрос № 76088: Скажите где мне найти библиотеку import32.lib при компилирование Tasma32 если кто может скиньте на мой яшек спасибо devochka.russia@gmail.com простите что такой емайл???... Спасибо.! ..
Вопрос № 76156: Доброго времени суток ! :)подскажите как лучше сделать:прочитать файл с помощью функции 3Dh прерывания int 21h.какой буфер лучше выбрать и как лучше вывести его содержимое на экран?...
Вопрос № 76338: Здравствуйте уважаемые эксперты. Подскажите пожалуйста, почему FASM под винду не хочет компилировать мою прогу под дос. А именно он ругается на директиву segment. Когда её нет - компилиться. Может в fasm-е не нужно описывать сегменты?...
Вопрос № 76355: Здравствуйте уважаемые эксперты! В главе 16-ть книги Олега Калашникова описываются способы защиты программ от отладки. После ознакомления с первыми двумя примерами я действительно увидел, что после прохождения отладчиком защитной част...
Вопрос № 76473: Здраствуйте! Пишу лабораторную работу и встретил ошибку Need expression на вот таком блоке: xor ax,ax mov AH,3Fh mov BX,0 mov CX,5 mov DX,offset buffer int 21h cmp AX,5h JNE L1: ;вот здесь ошибка!!! cld le...
Вопрос № 76500: Доброго времени суток, уважаемые эксперты. Я попробовал создать загрузочный сектор на дискете, всё нормально вроде туда записалось, компьютер с нее грузится, но винда не видит дискету и говорит что он не отформатирована, можно было бы узнать как ...
Вопрос № 76593: Здраствуйте! Помогите пожалуйста! Вообшем нужно сравнить слово в программе(переменная) со словом введёным с клавиатуры! Ввожу слово сравнивается длина слова, всё нормальо, а после сами слова, и здесь неправильно тоесть они не одинаковы(для ...
Вопрос № 76637: Здраствуйте. Проблема с переходом в защищенный режим и работе в нем... Код бут.асм:------------------------------------------------------------------ [BITS 16] [ORG 0x7c00] cli mov ax,0 mov ds,ax mov es,ax<br...
Вопрос № 76669: Уважаемые! Подскажите причину по которой не создаются *.com ML *.asm - создаются *.obj и *.exe ML *.asm /AT - только *.obj ... Link: fatal error L1127:far segment references not allowed with /TINY Пользу...
Вопрос № 76680: здравствуйте. я совсем совсем ещё новичёк.месяц назад начал изучать ассемблер по книге олега калашникова и столкнулся с проблемой. мои действия : 1-печатаю текстовый файл листинга в текстовом редакторе(блокнот WinXP), 2-запускаю командную строку, 3-&...
Вопрос № 76713: Подскажите ,пожалуйста ,какая ошибка в данной программе ,а то она не запукается,ругается CSEG segment org 100h Begin: mov ax,0B800h mov es,ax mov di,0 mov al,1 mov ah,31 mov cx,2000 Next_face: <b...
Вопрос № 76724: Помогите пожалуйста исправить!!!!!!!!!! 1.Дан массив размерности n.Найти первый отрицательный элемент. Вопрос:Сделать для двух отрицательных элиментов??????????? include <iostream> using namespace std; int main() { ...

Вопрос № 76.056
здраствуйте.
у меня такой вопрос. где можна найти исходник для Turbo Assembler, который показывает формат компа IBM PC - АТ или ХТ. слышал что есть книжка "Р. Джордейн.- Справочник программиста персональных компьютеров типа IBM PC, XT и AT" и вней вроде есть примеры текста такой программы. но я ее в инете в элекктронном виде нигде немогу отыскать. может кто-нибуть сможет поделтся отсканеной главой с книжки или своим вариантом текста такой программы.
заранее спасиба.
Отправлен: 16.02.2007, 19:05
Вопрос задал: CoderX (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, CoderX!

посмотрите тут
http://avt.cs.nstu.ru/pub/common/help/jourdane/jordane.arj

Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 16.02.2007, 19:34
Оценка за ответ: 5
Комментарий оценки:
спасиба за линк. а то я эту книжку уже чуть было не купил в интернет-магазине. отличная книженция всё очень подробно расписано!


Вопрос № 76.088
Скажите где мне найти библиотеку import32.lib при компилирование Tasma32 если кто может скиньте на мой яшек спасибо devochka.russia@gmail.com простите что такой емайл???... Спасибо.!

Отправлен: 16.02.2007, 23:23
Вопрос задал: Supportx (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Supportx!

посмотрите на www.wasm.ru
раздел инструменты

TASM 5+ [Borland Corp. and !tE]
после распаковки в папке lib будет библиотека imp32i.lib,
это она и есть, заодно посылаю на мыло
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 17.02.2007, 21:39


Вопрос № 76.156
Доброго времени суток ! :)подскажите как лучше сделать:прочитать файл с помощью функции 3Dh прерывания int 21h.какой буфер лучше выбрать и как лучше вывести его содержимое на экран?
Отправлен: 17.02.2007, 15:48
Вопрос задал: ATZATZ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Евгений Иванов
Здравствуйте, ATZATZ!

Используй буфер не более 64 Кбайт. Считывай файл последовательно и выводи с помощью прямого доступа в видеопамять, что быстро работает.


---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 17.02.2007, 15:56
Оценка за ответ: 5
Комментарий оценки:
Ага.так и сделал.только есть момент:
я не понял что значит "Считывай файл последовательно "


Вопрос № 76.338
Здравствуйте уважаемые эксперты.
Подскажите пожалуйста, почему FASM под винду не хочет компилировать мою прогу под дос. А именно он ругается на директиву segment. Когда её нет - компилиться. Может в fasm-е не нужно описывать сегменты?
Отправлен: 18.02.2007, 21:12
Вопрос задал: Kashey (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Иванов
Здравствуйте, Kashey!

FASM предназначен непосредственно для win32, как я знаю.

Используй директиву FORMAT MZ для создания 16-битного кода.

Также пиши директиву USE16.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 18.02.2007, 21:22

Отвечает: Волков Павел Юрьевич
Здравствуйте, Kashey!
Компилятор создает код для DOS,Windows,Unix-like систем.

По умолчанию создается 16-битный код, поэтому при создании COM,MZ можно use16 не писать.

Для создания *.com файлов никаких директив ненадо:
;========================
org 100h
mov ah,9
mov dx,welcome
int 21h

mov ah,10h
int 16h

int 20h

welcome db "Welcome to Greate DOS!$"
;========================

Для EXE, без сегментов:
;========================
format MZ
org 100h
mov ah,9
mov dx,welcome
int 21h

mov ah,10h
int 16h

int 20h

welcome db "Welcome to Greate DOS!$"
;========================

С сегментами:
;========================
format MZ

entry main:start
stack 100h

segment main

start:
mov ax,text
mov ds,ax

mov dx,hello
call extra:write_text

mov ax,10h
int 16h

mov ax,4C00h
int 21h

segment text

hello db 'Hello world!',24h

segment extra

write_text:
mov ah,9
int 21h
retf
;========================

---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 10-ый класс)
Ответ отправлен: 19.02.2007, 09:09


Вопрос № 76.355
Здравствуйте уважаемые эксперты!

В главе 16-ть книги Олега Калашникова описываются способы защиты программ от отладки.
После ознакомления с первыми двумя примерами я действительно увидел, что после прохождения отладчиком защитной части кода и когда трассировка доходила до первой строки основного кода отладчик начинал сбоить. Всё бы хорошо, если бы не одно "но". Если в CV вместо нажатия F8/f10 и соответственно f1/f2 в AFDPRO установить курсор в поле основного кода и начать нажимать клавишу курсора, то можно свободно пролистать весь код. Конечно ты не увидишь как данные прыгают по регистрам, но листинг то всё равно виден. А если взять дизассемблер, то там наверняка можно будет затереть этот защищаемый участок и ковырять программу как угодно. Тогда для чего нужна такая липовая защита?

Спасибо!
Отправлен: 18.02.2007, 23:56
Вопрос задал: Paltus (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, Paltus!

она не липовая, а не совершенная Ж:-) это учебный пример, который в реальных программах давно не используется. не судите строго учебник, а не пособие по хакерским защитам Ж:-)

тем более что защита описана от трассировки, а вы использовали брек поинты, а не трасировку.
ps
абсолютно защитить нельзя, но можно сильно загемороить.
Ответ отправил: ramok (статус: Практикант)
Ответ отправлен: 19.02.2007, 03:26


Вопрос № 76.473
Здраствуйте!
Пишу лабораторную работу и встретил ошибку Need expression на вот таком блоке:
xor ax,ax
mov AH,3Fh
mov BX,0
mov CX,5
mov DX,offset buffer
int 21h
cmp AX,5h
JNE L1: ;вот здесь ошибка!!!
cld
lea SI,pwd
lea Di,buffer
что за ошибка и как лечить?
Отправлен: 19.02.2007, 18:31
Вопрос задал: chikanok (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, chikanok!

Убери двоеточие в названии метки.

Двоеточие нужно ставить в самом определении метки в потоке программы, а не в переходе на неё.

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 19.02.2007, 18:35

Отвечает: Зенченко Константин Николаевич
Здравствуйте, chikanok!

В операторах перехода метка должна быть без двоеточия
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 19.02.2007, 18:45

Отвечает: P@lach
Здравствуйте, chikanok!

У вас написано JNE L1:

но после L1(в этой строке) ":" ставить нельзя!!!
Ответ отправил: P@lach (статус: 1-ый класс)
Ответ отправлен: 20.02.2007, 11:11


Вопрос № 76.500
Доброго времени суток, уважаемые эксперты.
Я попробовал создать загрузочный сектор на дискете, всё нормально вроде туда записалось, компьютер с нее грузится, но винда не видит дискету и говорит что он не отформатирована, можно было бы узнать как сделать так, чтобы ее возможно было просматривать?
Код того, что записываю в загрузочный сектор привел в приложении. Разбирался по статьям в интернете.
Заранее благодарен

Приложение:

Отправлен: 19.02.2007, 21:33
Вопрос задал: Mefisto (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Волков Павел Юрьевич
Здравствуйте, Mefisto!
Видимо дело в том, что Вы записали полученный бинарник простым копированием на дискету. Надо записывать "напрямую", например с помощью программы rawrite (http://offffh.narod.ru/rawrite2.zip).

Скомпилировал FASM'ом, ругнулся на строчку
_message: db 'Hello, world!', 0

исправил на:
_message:
db 'Hello, world!', 0

Затем, полученный бинарник указал в программе rawrite и при загрузке с нее увидел надпись - Hello, world!. Так что код работает.


---------
Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 10-ый класс)
Ответ отправлен: 20.02.2007, 10:02
Оценка за ответ: 4
Комментарий оценки:
При загрузке с нее у меня также все нормально работает, DiskEditom посмотрел на первый сектор там находится точь в точь что и в бинарнике, но виндовс гворит что дискета не отформатирована. ЗА ссылку на программу спасибо
В приложении кстати в одном месте ошибку нашел, там не 18h а просто 18 секторов на дорожку.

Отвечает: ASMодей
Здравствуйте, Mefisto!
Обрати внимание на то, как скомпилировался первый JMP. У меня FASM 1.67 скомпилировал его в два байта, не смотря на указание типа word. Вследствие этого все параметры boot-сектора сместились на 1 байт.
Ответ отправил: ASMодей (статус: Профессионал)
Россия, Магнитогорск
----
Ответ отправлен: 21.02.2007, 08:23
Оценка за ответ: 4
Комментарий оценки:
ВОТ, это я заметил, но так че то и не понял почему так произошло. в приницпе я нашел исходники рабочего загрузчика, вот в нем как раз так и получилось что 3 первых байта занял JMP. Спасибо за замечание


Вопрос № 76.593
Здраствуйте!
Помогите пожалуйста!
Вообшем нужно сравнить слово в программе(переменная) со словом введёным с клавиатуры! Ввожу слово сравнивается длина слова, всё нормальо, а после сами слова, и здесь неправильно тоесть они не одинаковы(для ПК).Части кода в приложении.
Подскажите как узнать длину слова при объявлении как переменной,тоесть сначала переменная слова,а потом длина слова.

Приложение:

Отправлен: 20.02.2007, 14:07
Вопрос задал: chikanok (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, chikanok!

код 0Ah с клавиатуры не вводится, после слова сразу идет 0Dh.
переделайте этот участок в .СОМ формат и проверьте DUBUG.EXE
из поставки "окон"
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 20.02.2007, 15:09


Вопрос № 76.637
Здраствуйте.
Проблема с переходом в защищенный режим и работе в нем...

Код бут.асм:------------------------------------------------------------------
[BITS 16]
[ORG 0x7c00]

cli
mov ax,0
mov ds,ax
mov es,ax
mov ss,ax
mov sp,0x7c00
mov bp,sp
sti

mov si, msg_intro
call kputs

mov si, msg_entering_pmode
call kputs

mov al,00010001b
out 0x20,al
mov al,0x20
out 0x21,al
mov al,00000100b
out 0x21,al
mov al,00000001b
out 0x21,al

cli

lgdt [gd_reg]

in al,0x92
or al,1
mov cr0,eax

jmp 0x8: _protected
kputs:
pusha
.loop
lodsb
test al,al
jz .quit
mov ah,0x0e
int 0x10
jmp short .loop
.quit
popa
ret

[BITS 32]

_protected:

mov ax,0x10
mov ds,ax
mov es,ax
mov ss,ax
mov esi, kernel_library
mov edi, 0x200000

mov ecx, 0x4000

rep movsd

jmp 0x200000
gdt:
dw 0,0,0,0

db 0ffh,0ffh,0,0,0,10011010b,0cfh,0
db 0ffh,0ffh,0,0,0,10010010b,0cfh,0

gd_reg:
dw 8192
dd gdt

msg_intro: db "Secondary bootloader received control",0ah,0dh,0
msg_entering_pmode: db "Entering protected mode...",0ah,0dh,0

kernel_library:
incbin 'kernel.bin'
Код кернел.асм:------------------------------------------------------------
[ORG 0x200000]
mov esi,msg_ok
call puts
jmp $

puts:

pusha
.loop
lodsb
test al,al
jz .quit
mov ecx,[cursor]
mov [VIDEO_RAM+ecx*2],al
inc dword [cursor]
jmp short .loop
.quit:
popa
ret

cursor dd 0
msg_ok: db 'Hello from pmode!',0

VIDEO_RAM equ 0b8000h

----------------------------------------
Порядок сборки:
сначала НАСМом собираю в бинарник кернел
потом бут

эмулятор: VMware

проблема:
при начале эмуляции ВМваре выдает сообщение, что "...stack fault (hardware resert) ..." и система перезагружается, но между нажатием на ОК у сообщения и перезагрузкой на экране появляется тескт первых двух сообщений:
Secondary bootloader received control
Entering protected mode...

Вопрос: почему не подаются признаки жизни (не выводится текст) из кернела? Как/что/где исправить?
Отправлен: 20.02.2007, 20:12
Вопрос задал: Erz (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Erz!
;обратите внимание
in al,92h
;-)or al,2
;-)out 92h,al

;-)mov eax,cr0
or al,1
mov cr0,eax
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 21.02.2007, 14:46


Вопрос № 76.669
Уважаемые! Подскажите причину по которой не создаются *.com
ML *.asm
- создаются *.obj и *.exe

ML *.asm /AT
- только *.obj
...
Link: fatal error L1127:far segment references not allowed with /TINY

Пользуюсь MASM611.
Отправлен: 20.02.2007, 23:12
Вопрос задал: SrNic (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: ramok
Здравствуйте, SrNic!

у вас в исходнике наверное описано несколько сегментов, а для .com нужно описать только один сегмент кода и все.
Ответ отправил: ramok (статус: Практикант)
Ответ отправлен: 21.02.2007, 00:53

Отвечает: Chip
Здравствуйте, SrNic! Папробуй кинуть link.exe из папки BINR в папку BIN
Ответ отправил: Chip (статус: 1-ый класс)
Ответ отправлен: 21.02.2007, 01:14
Оценка за ответ: 3
Комментарий оценки:
Пробовал


Вопрос № 76.680
здравствуйте. я совсем совсем ещё новичёк.месяц назад начал изучать ассемблер по книге олега калашникова и столкнулся с проблемой. мои действия : 1-печатаю текстовый файл листинга в текстовом редакторе(блокнот WinXP), 2-запускаю командную строку, 3-"(мне нужно из asm. файла получить com. файл)" следую инструкциям в книге,в командной строке запускаю ML.EXE с /AT. пример :ML.EXE файл.asm /AT. (использую MASM 6.11). На что получаю ответ Assembling:файл.asm fatal error A1020 cannot find link.exe. тоже выходит и DosNavigatore и в Fare. вобщем немогу создать com файл.
Отправлен: 21.02.2007, 00:50
Вопрос задал: Deeman (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Chip
Здравствуйте, Deeman!Папробуйте кинуть link.exe из папки BINR в папку BIN

Ответ отправил: Chip (статус: 1-ый класс)
Ответ отправлен: 21.02.2007, 01:19
Оценка за ответ: 5
Комментарий оценки:
Chip спасибо за ответ. Но я уже пробовал так делать, перемещал link.exe. Ксажелению это непомогло.

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Deeman!

В MASM 6.11 программа ML.EXE - только оболочка
которая запускает
masm.exe <имя><опции транслятора>
а потом
link.exe <имя><опции коипилятора>

попробуй их запустить так
masm <имя>
link <имя> /t
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 21.02.2007, 11:06
Оценка за ответ: 4
Комментарий оценки:
спасибо за ответ Константин Николаевич. Сделал всё как вы посоветовали. Но теперь выходит другая ошибка.. cannot run ml.exe. Может ещё что посоветуете.


Вопрос № 76.713
Подскажите ,пожалуйста ,какая ошибка в данной программе ,а то она не запукается,ругается
CSEG segment
org 100h
Begin:
mov ax,0B800h
mov es,ax
mov di,0
mov al,1
mov ah,31
mov cx,2000

Next_face:
mov es:[di],ax
add di,2
loop Next_face

mov ah,10h
int 16h
int 20h
CSEG ends
end Begin
Отправлен: 21.02.2007, 09:49
Вопрос задал: Ивкина Светлана Николаевна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Ивкина Светлана Николаевна!

;добавтьте
assume cs:CSEG
;перед
org 100h
Удачи!
Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 21.02.2007, 10:17

Отвечает: Евгений Иванов
Здравствуйте, Ивкина Светлана Николаевна!

Также советую добавить

mov ax,3
int 16

---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214889076
----
Ответ отправлен: 21.02.2007, 12:01


Вопрос № 76.724
Помогите пожалуйста исправить!!!!!!!!!!
1.Дан массив размерности n.Найти первый отрицательный элемент.
Вопрос:Сделать для двух отрицательных элиментов???????????

include <iostream>
using namespace std;
int main() {
const int n = 10;
int ar[n] = {4, 0, 2, 4, 3, 3, -5, 3, 7, 5};
int r;
asm {
pusha
push es
push ds
pop es
lea edi, ar
lea esi, [edi + 4]
xor eax, eax
mov ecx, n
4: scasd
jg @5
loop @4
mov r, -1
jmp @6
5: sub edi, esi
shr edi, 2
mov r, edi
6: pop es
popa
}
(r < 0) ? cout<<"No negative elements" : cout<<ar[r];
return 0;
}

2.В строке заменить все символы '1' символом '0', а символы '0' символом '1'
Программа работает, символы меняет, но почему то дописывает еще '1' шестым символом, а шестой символ '5' и менять она его не должна???????

#include <iostream>
using namespace std;
int main() {
char s[] = "234105431591045 char buf[30];
asm {
pusha
push es
push ds
pop es
lea esi, s
lea edi, buf
1: lodsb
cmp al, '0'
jne @2
mov al, '1'
stosb
jmp @3
2: cmp al, '1'
jne @3
mov al, '0'
3: stosb
test al, al
jne @1
pop es
popa
}
cout<<buf;
return 0;
}


Приложение:

Отправлен: 21.02.2007, 11:07
Вопрос задал: Kostya kam (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Kostya kam!
1.ищем отрицательное число, а сканируем в поисках 0;
2.после
mov al, '1'
stosb;вот эту команду
переход
и снова
3:stosb
(нужно убрать одну команду stosb или переходить на одну команду дальше)
см. приложение.
Удачи!

Приложение:

Ответ отправил: Зенченко Константин Николаевич (статус: 5-ый класс)
Ответ отправлен: 21.02.2007, 11:50


Отправить вопрос экспертам этой рассылки

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное