Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_4N.DOC
Скачиваний:
1
Добавлен:
27.08.2019
Размер:
64 Кб
Скачать

1.3 Використання стеку.

На вершину стеку завжди вказує регістр SP. Для доступу до даних в стеку можна використати режим адресації, де базовим є регістр SP:

MOV AX, [BP+4]

Дана інструкція завантажує в регістр AX словом, яке знаходиться в стеку із зміщенням 4.

Однак частіше для роботи зі стеком використовують інструкції PUSH i POP. Інструкція PUSH зберігає операнд у вершині стеку, а POP витягує значення зі стеку і зберігає його в операнді. Приклад:

MOV AX, 1

PUSH AX

POP BX

1.4 Обмін даними

Виконати обмін вмісту двох операндів дозволяє інструкція XCHG. Приклад:

XCHG AX, DX

аналогічна

PUSH AX

MOV AX, DX

POP DX

1.5 Приклади програм на ассемблері

Програма 1: ADDSUB.ASM

1: %TITLE “Використання команд ADD,SUB, INC, DEC”

2:

3: IDEAL

4:

5: MODEL SMALL

6: STACK 256

7:

8: DATASEG

9:

10: ExCode DB 0

11: Count DW 1

12:

13: CODESEG

14:

15: Start:

16: MOV AX,@DATA

17: MOV DS,AX

18:

19: MOV AX,4

20: MOV BX,2

21: ADD AX,BX

22:

23: MOV CX,8

24: ADD CX,[Count]

25:

26: ADD [Count],CX

27:

28: INC [Count]

29: DEC [Count]

30: INC AX

31: DEC CX

32:

33: Exit:

34: MOV AH,04Ch

35: MOV AL,[EXCODE]

36: int 21h

37:

38: END Start

Програма 2. MULDIV.ASM

1: %TITLE “Використання команд MUL,DIV”

2:

3: IDEAL

4:

5: MODEL SMALL

6: STACK 256

7:

8: DATASEG

9:

10: exCode DB 0

11: opByte DB 8

12: opWord DW 100

13: sourceByte DB 64

14: sourceWord DW 4000

15:

16: CODESEG

17:

18: Start:

19: MOV AX,@DATA

20: MOV DS,AX

21:

22: MOV AL,[opByte]

23: MUL [sourceByte]

24:

25: MOV AX,[opWord]

26: MUL [sourceWord]

27:

28: MOV AX,[opWord]

29: MUL AX

30:

31: MOV AX,[opWord]

32: DIV [sourceByte]

33:

34: MOV AX,[opWord]

35: MOV DX,[opWord]

36: DIV [sourceWord]

37:

38: Exit:

39: MOV AH,04Ch

40: MOV AL,[exCode]

41: int 21h

42:

43: END Start

  1. Використання Turbo Debuggtr.

Програми слід асемблювати і компонувати з опціями, які добавляють відлагоджувальну інформацію в *.OBJ- та *.ЕХЕ -файли. В результаті Turbo Debugger отримає інформацію про програмні символи, розташування змінних, організацію сегментів і т.д. Для підготовки прогрми для відлагодження введіть такі команди:

tasm /zi ім'я.asm

tlink /v ім'я.obj

Без цих опцій Turbo Debugger все одно завантажить програму, але буде показувати тільки дизасемльовані машинні коди. З опціями командної стрічки, асемблер може показувати мітки, структури, змінні, рядки вихідної програми та іншу інформацію.

Turbo Debugger може поступово виконувати асемблерну програму і дозволяє заглянути в пам'ять та побачити реальні байти, з яких складається програма і дані. Можна використовувати Turbo Debugger для пошуку і виправлення помилок, а також як персонального вчителя при вивченні мови Assembler, який може виконувати тестові програми і дозволяє спостерігати за результатами виконання окремих машинних команд.

Для виходу з TurboDebugger натисніть <Alt+X>.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]