WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  ASM
  помогите начинающиму

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   помогите начинающиму
Mabbus опубликован 12-12-2001 00:12 MSK   Click Here to See the Profile for Mabbus   Click Here to Email Mabbus  
вопрос ткаой
есть регистры в которые можно отправлять
во вопрос а что вних отправлять
я имею ввиду что и вкокой регистр есть ли какое ибудь разделение

и 2)
когда пишут проги под дос то объявляют func
какието в 16-тиричном виде где можно узнать что за func за что отвеяает

bobby опубликован 12-12-2001 12:37 MSK     Click Here to See the Profile for bobby  Click Here to Email bobby     
Это ячейки памяти в самом проце для хранения переменных размерами в слово (2байта).
Доступ к ним гораздо быстрее, чем к ОЗУ.
Можно работать как с целым регистром, так и с
младшим и старшим его байтами(справедливо не для всех регистров)
Бывают:
1.общего назначения (AX,BX,CX,DX и др.)
2.сегментные (CS,DS,SS,ES)
3.Указатель команд IP ( В нем адрес текущей исполняемой команды. изменение его ведет к переходу, т.е. GOTO)
4.Регистр флагов
Данные в них не отправляют, а записывают. Например так
MOV AX,BX ;-Записать в AX содержимое BX

А ты вопрос носом набивал ?

7in опубликован 12-12-2001 23:12 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Добавлю ещё, что младший байт регистра AX - это AL, старший - AH. Для BX, CX и DX - это BL/BH, CL/CH и DL/DH. Другие регистры не имеют однобайтовых аналогов, так сказать. Регистр CX обычно используется как счётчик, а AX - как основной при использовании некоторых инструкций (команд то бишь).

Есть ещё регистры SI и DI, они используются для чтения/записи/копирования/сравнения участков памяти.

Регистр BP обычно используют внутри процедур для доступа к параметрам и локальным переменным (в подробности вдаваться не буду).

Есть ещё регистр SP, который указывает на вершину стека (т.е. на посленее записанное в стек значение). Регистр SS определяет сегмент стека (т.е. вершина стека - SS:SP).

Регистр DS обычно используется для доступа к памяти, собственно, как и регистр ES. Но при доступе к памяти, если адрес НЕ содержит [BP], то по умолчанию используется сегмент DS, иначе (если содержит) - SS.

Регистр CS указывает на сегмент выполняемого кода, IP - на текущую команду. Но! Если ты напишешь в исходнике IP (mov ax,ip ; push ip и т.д), то ассемблер тебя не поймёт. Регистр IP читается/изменяется только при помощи JMP,Jcc,LOOP,CALL,RET,POP(послеCALL) и т.п.

Регистр флагов показывает результат выполнения предыдущей команды (правда, не все команды изменяют его значение). Для доступа к нему используются PUSHF/POPF,SAHF/LAHF.

В принципе (хотя даже и без принципа :) , любой регистр можно использовать там, где захочется, кроме регистров SS,SP,CS,IP, их лучше просто так не трогать. Но если написано в документации, что LOOP использует CX, значит LOOP будет использовать именно CX :)

Кстати, в процессорах 80386 и старше регистры (кроме сегментных!) имеют размер не 2, а 4 байта и называются EAX,EBX,ESI и т.д. Для доступа к младшему слову используются AX,BX,SI..... Т.е. EAX состоит из AX и старшей части (которая названия не имеет). А AX, в свою очередь, из AL и AH.

Не хочу тебя пугать, но сопроцессор тоже имеет свои регистры( ST(n) ). Есть также и управляющие регситры CRx, DRx, TRx. Есть регистры MMX :)))

Вот такие вот ватрухи, панимаишь..... :)))

7in опубликован 12-12-2001 23:16 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Чуть не забыл.... На счёт func...
Ты, наверное, имеешь в виду конструкции типа...

mov ax,201h
mov cx,....
mov dx,....
int 13h

Да? (кстати, этот пример лучше не пробовать, опасно для жизни :) .
По этому делу есть множество документаций, таких как TechHelp (можно, кстати, на FileSearch.ru найти), Ralf Brown's Interrupt List:
ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/interrupt-list/

Ну и напоследок..... УДАЧИ !!!!!!!!!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.