На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> помогите начинающиму
    вопрос ткаой
    есть регистры в которые можно отправлять
    во вопрос а что вних отправлять
    я имею ввиду что и вкокой регистр есть ли какое ибудь разделение
    и 2)
    когда пишут проги под дос то объявляют func
    какието в 16-тиричном виде где можно узнать что за func за что отвеяает
      Это ячейки памяти в самом проце для хранения переменных размерами в слово (2байта).
      Доступ к ним гораздо быстрее, чем к ОЗУ.
      Можно работать как с целым регистром, так и с
      младшим и старшим его байтами(справедливо не для всех регистров)
      Бывают:
      1.общего назначения (AX,BX,CX,DX и др.)
      2.сегментные (CS,DS,SS,ES)
      3.Указатель команд IP ( В нем адрес текущей исполняемой команды. изменение его ведет к переходу, т.е. GOTO)
      4.Регистр флагов
      Данные в них не отправляют, а записывают. Например так
      MOV AX,BX ;-Записать в AX содержимое BX
      А ты вопрос носом набивал ?
        Добавлю ещё, что младший байт регистра 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 :)))
        Вот такие вот ватрухи, панимаишь..... :)))
          Чуть не забыл.... На счёт 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/
          Ну и напоследок..... УДАЧИ !!!!!!!!!
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0264 ]   [ 16 queries used ]   [ Generated: 26.04.24, 12:15 GMT ]