|
||||
|
51. Способы задания операндов команды Операнд задается неявно на микропрограммном уровне В этом случае команда явно не содержит операндов. Алгоритм выполнения команды использует некоторые объекты по умолчанию (регистры, флаги в eflags и т. д.). Операнд задается в самой команде (непосредственный операнд) Операнд находится в коде команды, т. е. является ее частью. Для хранения такого операнда в команде выделяется поле длиной до 32 бит. Непосредственный операнд может быть только вторым операндом (источником). Операнд-получатель может находиться либо в памяти, либо в регистре. Операнд находится в одном из регистров Регистровые операнды указываются именами регистров. В качестве регистров могут использоваться: 1) 32-разрядные регистры EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP; 2) 16-разрядные регистры AX, BX, CX, DX, SI, DI, SP, BP; 3) 8-разрядные регистры AH, AL, BH, BL, CH, CL, DH, DL; 4) сегментные регистры CS, DS, SS, ES, FS, GS. Например, команда add ax,bx складывает содержимое регистров ax и bx и записывает результат в bx. Команда dec si уменьшает содержимое si на 1. Операнд располагается в памяти Это наиболее сложный и в то же время наиболее гибкий способ задания операндов. Он позволяет реализовать следующие два основных вида адресации: прямую и косвенную. В свою очередь, косвенная адресация имеет следующие разновидности: 1) косвенную базовую адресацию; другое ее название – регистровая косвенная адресация; 2) косвенную базовую адресацию со смещением; 3) косвенную индексную адресацию со смещением; 4) косвенную базовую индексную адресацию; 5) косвенную базовую индексную адресацию со смещением. Операндом является порт ввода/вывода Помимо адресного пространства оперативной памяти, микропроцессор поддерживает адресное пространство ввода-вывода, которое используется для доступа к устройствам ввода-вывода. Объем адресного пространства ввода-вывода составляет 64 Кбайт. Для любого устройства компьютера в этом пространстве выделяются адреса. Конкретное значение адреса в пределах этого пространства называется портом ввода-вывода. Физически порту ввода-вывода соответствует аппаратный регистр (не путать с регистром микропроцессора), доступ к которому осуществляется с помощью специальных команд ассемблера in и out. Операнд находится в стеке Команды могут совсем не иметь операндов, иметь один или два операнда. Большинство команд требуют двух операндов, один из которых является операндом-источником, а второй – операндом назначения. Важно то, что один операнд может располагаться в регистре или памяти, а второй операнд обязательно должен находиться в регистре или непосредственно в команде. Непосредственный операнд может быть только операндом-источником. В двухоперандной машинной команде возможны следующие сочетания операндов: 1) регистр – регистр; 2) регистр – память; 3) память – регистр; 4) непосредственный операнд – регистр; 5) непосредственный операнд – память. |
|
||
Главная | Контакты | Нашёл ошибку | Прислать материал | Добавить в избранное |
||||
|