Реферат: Разработка программы на Ассемблере
5. TEST DST, SRC; выполняет операцию AND над операндами, но воздействует только на флаги и не изменяет самих операндов.
6. SHR DST, CNT; логический сдвиг вправо, освобождающиеся слева биты заполняются нулем, крайний правый бит выталкивается во флаг CF. Операнд DST может быть ячейкой памяти.
mov bl,10110010b;(CF) = x
shr bl,1;(BL) = 01011001,(CF) = 0
до сдвига | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | (CF)=X |
после сдвига | 0---> | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | ------> | (CF)=0 |
mov cl,4;
shr bl,cl;(BL) = 00000101,(CF) = 1.
7. SHL DST, CNT; логический сдвиг влево.
8. RLC DST, CNT; циклический сдвиг влево через перенос
9. RRC DST, CNT;циклический сдвиг вправо через перенос
10. ROR DST, CNT;циклический сдвиг влево
11. ROL DST, CNT;циклический сдвиг вправо
КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ
1. CALL SUBR; вызов подпрограммы с адресом SUBR;
call delay;
mov ....
2. RET; возврат из подпрограммы к оператору следующему непосредственно за CALL, то есть в приведенном выше примере к MOV ..
3. JMP NAME; безусловный переход к команде с символическим адресом NAME.
jmp short name;переход к метке name, отстоящей не более
;чем на -128 или +127 байтов.
jmp near name;переход к метке name, отстоящей не более
;чем на 65535 байтов, в одном сегменте.
jmp name;аналогично jmp near name;
4. JA NAME или JNBE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине больше источника, то перейти к метке name.
5. JB NAME или JNAE NAME; условный переход, если, например, в результате сравнения CMP DST, SRC приемник по абсолютной величине меньше источника, то перейти к метке name (команды п4 и п5 выполняются по результатам выполнения операций над беззнаковыми числами).
6. JZ NAME или JE NAME; перейти, если результат операции влияющей на флаг нуля - нулевой (переход по "нулю").
7. JNZ NAME или JNE NAME; переход по "не нулю". (команды п6 и п7 выполняются по результатам выполнения операций над числами cо знаком ).
КОМАНДЫ УПРАВЛЕНИЯ ЦИКЛАМИ
1. LOOP NAME; эта команда неявно уменьшает (CX) на 1 и осуществляет переход к ближней метке, если (CX) не равно 0.