Здавалка
Главная | Обратная связь

B_TAB db 1Ah,2Bh,3Ch,4Dh,5Eh,6Fh,7Ah,8Bh



W_TAB dw 1A2Bh,3C4Dh,5E6Fh,7A8Bh

B_TAB1 db 0Ah,8 dup(1)

W_TAB1 dw 8 dup(1)

DSEG ends

ESEG segment

W_TAB2 dw 11h,12h,13h,14h,15h,16h,17h,18h

ESEG ends

CSEG segment para public 'code'

PROG proc far

Assume ds:DSEG,cs:CSEG,ss:SSEG,es:ESEG

Push ds

Mov ax,0

Push ax

;инициализация сегментных регистров

Mov ax,dseg

Mov ds,ax

Mov ax,eseg

Mov es,ax

;непосредственная (операнд-источник)

mov al,-3;расширение знака

Mov ax,3

Mov B_TAB,-3

Mov W_TAB,-3

Mov ax,2A1Bh

;регистровая

Mov bl,al

Mov bh,al

Sub ax,bx

Sub ax,ax

;прямая

Mov ax,W_TAB

mov ax,W_TAB+3

mov ax,W_TAB+5

mov al,byte ptr W_TAB+6

Mov al,B_TAB

mov al,B_TAB+2

Mov ax,word ptr B_TAB

mov es:W_TAB2+4,ax

;косвенная

Mov bx,offset B_TAB

mov si,offset B_TAB+1

mov di,offset B_TAB+2

mov dl,[bx]

mov dl,[si]

mov dl,[di]

mov ax,[di]

Mov bp,bx

mov al,[bp];какой сегмент?

mov al,ds:[bp]

mov al,es:[bx]

mov ax,cs:[bx]

; базовая

mov ax,[bx]+2;основная форма

mov ax,[bx]+4;проверьте допустимость других

mov ax,[bx+2]

mov ax,[4+bx]

mov ax,2+[bx]

mov ax,4+[bx]

mov al,[bx]+2

mov bp,bx;другой базовый регистр

mov ax,[bp+2];откуда содержимое ax?

mov ax,ds:[bp]+2;попробуем переназначить

;сегментный регистр

mov ax,ss:[bx+2]

;индексная

mov si,2;загрузка индекса

mov ah,B_TAB[si];основная форма

mov al,[B_TAB+si];проверьте другие

mov bh,[si+B_TAB]

mov bl,[si]+B_TAB

mov bx,es:W_TAB2[si]

Mov di,4

mov bl,byte ptr es:W_TAB2[di]

mov bl,B_TAB[si]

;базовая индексная

mov bx,offset B_TAB;загрузка базы

mov al,3[bx][si];основная форма

mov ah,[bx+3][si]

mov al,[bx][si+2]

mov ah,[bx+si+2]

Mov bp,bx

mov ah,3[bp][si];из какого сегмента?

mov ax,ds:3[bp][si]

mov ax,word ptr ds:2[bp][si]

Ret

PROG endp

CSEG ends

End PROG

Контрольные вопросы:

1. Объясните формирование 20 битного физического адреса по схеме сегмент:смешение?

2. Сколько режимов адресации существует, расскажите разницу?

3. Приведите общий формат команды определения данных программ на Ассемблере.

4. Найдите ошибку в следующих командах:

MOV DS,@DATA

MOV AX,ES

MOV DS,AX

MOV CS,AX

MOV (ячейка памяти), (ячейка памяти)

5. Назначение команды POP и PUSH, приведите общий формат команды, приведите пример использования этой команды.

6. Расскажите об операторе PTR.

7. Назначение команды XCHG, приведите пример использования этой команды.

8. Найдите ошибку в следующих командах:

XCNG AX,BX

XCHG CX,BL

XCHG ES,DS

XCHG DATA1,AX

9. Для чего нужен стек в программе?

10. Расскажите о способах определения сегментов памяти?

Лабораторная работа №3

Арифметические операции. Битовые команды.

Цель работы:

- изучить арифметические операции языка ассемблера;

- научить их использование при составлении программ;

- дать понятие о битовых командах и их применение;

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Арифметические операции на языке ассемблера выполняются над целыми числами четырех типов:

Беззнаковыми двоичными, знаковыми двоичными, упакованными десятичными и неупакованными десятичными.

В данной лабораторной работе рассматриваются арифметические операции над безззнаковыми числами.

Используются следующие команды:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.