Реферат: Разработка программы на Ассемблере
4. XCHG DST, SRC; поменять местами содержимое (DST) и (SRC). Оба операнда не могут быть одновременно содержимым ячеек памяти.
5. XLAT SRC; извлечь из таблицы с начальным адресом SRC байт данных имеющий номер от начала таблицы = (AL), и поместить его в AL. Адрес SRC должен находиться в регистре BX. Другой вариант: XLATB.
....
.DATA
src DB 15d,10h,00110101b,'A','B',166d
.CODE
....
mov al,2; в результате выполнения этих трех команд
mov bx,OFFSET src; в регистр AL будет загружен код
xlatb; 00110101b = 35h = 53d = ASCII'5'
6. IN ACCUM, PORT; поместить в аккумулятор AL или AX байт или слово из порта с адресом PORT. Если адрес порта <= FF то адрес порта может указываться непосредственно, если адрес порта > FF, то адрес порта указывается косвенно, через содержимое регистра DX (специальная функция регистра общего назначения).
in al,0a5h;ввести в AL байт данных из ВУ с адресом порта A5h ....
mov dx,379h;ввести в аккумулятор AL байт данных из
in al,dx;внешнего устройства с адресом порта 379h
7. OUT PORT, ACCUM; переслать из аккумулятора AL или AX байт или слово в ВУ с символическим адресом PORT.
out 0ffh,al;
....
mov dx,37Ah;переслать слово данных из AX в ВУ с адре-
out dx,ax;сом порта 37Ah
8. LEA RP,M; загрузить в регистр RP эффективный адрес (смещение) ячейки памяти с символическим адресом M.
lea di, rus; аналог этой команды - mov di, OFFSET rus.
АРИФМЕТИЧЕСКИЕ КОМАНДЫ
1. ADD DST, SRC; сложить содержимое SRC и DST и результат переслать в DST.
add al, [mem_byte]; mem_byte однобайтовая ячейка памяти
add [mem_word], dx; mem_word двухбайтовая ячейка памяти
add ch,10001010b;
2. INC DST; увеличить (DST) на 1 (инкремент (DST)).