Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
25.05.2014
Размер:
121.86 Кб
Скачать

Министерство образования Российской Федерации

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра технической кибернетики

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

Режимы адресации

Выполнили:

студенты гр.

.

Проверил преподаватель:

Мукасеева В. Н.

Уфа 2005

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

Режимы адресации

1. ЦЕЛЬ РАБОТЫ

Целью работы является разработка простой программы преобразования данных для приобретения практических навыков программирования на языке ассемблера и закрепления знаний по режимам адресации.

2. ХОД РАБОТЫ

Задание:

Создать вектор из десяти 2-х байтовых элементов. Заполнить положительными, отрицательными и нулевыми значениями. Заменить нулевые значения вектора средним арифметическим значением его соседей. Среднее получать сдвигом вправо на один байт.

Решение:

1. Блок схема программы

2. Код программы

TITLE EX_PROG

PAGE ,132

STACKSEG SEGMENT PARA PUBLIC ‘STACK’

DW 64 DUP(0)

STACKSEG ENDS

DSEG SEGMENT PARA PUBLIC 'DATA'

SOURCE DW 0, 20, 0,30, 0, 40, -50, 0,10,0

DSEG ENDS

SUBTTL ОСНОВНАЯ ПРОГРАММА

PAGE

CSEG SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CSEG, DS:DSEG, SS:STACKSEG

OUR_PROG PROC FAR

PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

MOV SI,0

MOV CX,10

CYCLE:

CMP SOURCE[SI],0

JNE L1

CMP SI,0

JNE L3

MOV AX,SOURCE[SI+2]

SAR AX,1

MOV SOURCE[SI],AX

JMP L1

L3: CMP SI,9

JNE L2

MOV AX,SOURCE[SI-2]

SAR AX,1

MOV SOURCE[SI],AX

JMP L1

L2: MOV AX,SOURCE[SI-2]

ADD AX,SOURCE[SI+2]

SAR AX,1

MOV SOURCE[SI],AX

L1:ADD SI,2

LOOP CYCLE

RET

OUR_PROG ENDP

CSEG ENDS

END OUR_PROG1.

3. Листинг трансляции:

IBM Macro Assembler/2 Version 1.00 11/9/5EX_PROG Page 1-1

TITLE EX_PROG

PAGE ,132

0000 STACKSEG SEGMENT PARA PUBLIC 'STACK'

0000 0040[ DW 64 DUP(0) ; Область стека

0000

]

0080 STACKSEG ENDS

0000 DSEG SEGMENT PARA PUBLIC 'DATA'

0000 0000 0014 0000 FFE2 SOURCE DW 0,20,0,30, 0, 40, -50, 0,10,0

0000 0028 FFCE 003C

000A 0000

0014 DSEG ENDS

SUBTTL ОСНОВНАЯ ПРОГРАММА

IBM Macro Assembler/2 Version 1.00 11/9/5EX_PROG Page 1-2

ОСНОВНАЯ ПРОГРАММА

PAGE

0000 CSEG SEGMENT PARA PUBLIC 'CODE'

ASSUME CS:CSEG, DS:DSEG, SS:STACKSEG

0000 OUR_PROG PROC FAR

0000 1E PUSH DS

0001 2B C0 SUB AX,AX

0003 50 PUSH AX

0004 B8 ---- R MOV AX,DSEG

0007 8E D8 MOV DS,AX

0009 BE 0000 MOV SI,0

000C B9 000A MOV CX,10

000F CYCLE:

000F 83 BC 0000 R 00 CMP SOURCE[SI],0

0014 75 32 JNE L1

0016 83 FE 00 CMP SI,0

0019 75 0D JNE L3

001B 8B 84 0002 R MOV AX,SOURCE[SI+2]

001F D1 F8 SAR AX,1

0021 89 84 0000 R MOV SOURCE[SI],AX

0025 EB 21 90 JMP L1

0028 83 FE 09 L3: CMP SI,9

002B 75 0D JNE L2

002D 8B 84 FFFE R MOV AX,SOURCE[SI-2]

0031 D1 F8 SAR AX,1

0033 89 84 0000 R MOV SOURCE[SI],AX

0037 EB 0F 90 JMP L1

003A 8B 84 FFFE R L2: MOV AX,SOURCE[SI-2]

003E 03 84 0002 R ADD AX,SOURCE[SI+2]

0042 D1 F8 SAR AX,1

0044 89 84 0000 R MOV SOURCE[SI],AX

0048 83 C6 02 L1:ADD SI,2

004B E2 C2 LOOP CYCLE

004D CB RET

OUR_PROG ENDP

004E CSEG ENDS

END OUR_PROG

IBM Macro Assembler/2 Version 1.00 11/9/5EX_PROG Symbols-1

Segments and Groups:

N a m e Size Align Combine Class

CSEG . . . . . . . . . . . . . . 004E PARA PUBLIC 'CODE'

DSEG . . . . . . . . . . . . . . 0014 PARA PUBLIC 'DATA'

STACKSEG . . . . . . . . . . . . 0080 PARA PUBLIC 'STACK'

Symbols:

N a m e Type Value Attr

CYCLE . . . . . . . . . . . . . L NEAR 000F CSEG

L1 . . . . . . . . . . . . . . . L NEAR 0048 CSEG

L2 . . . . . . . . . . . . . . . L NEAR 003A CSEG

L3 . . . . . . . . . . . . . . . L NEAR 0028 CSEG

OUR_PROG . . . . . . . . . . . . F PROC 0000 CSEG Length = 004E

SOURCE . . . . . . . . . . . . . L WORD 0000 DSEG

55 Source Lines

55 Total Lines

12 Symbols

46772 Bytes symbol space free

0 Warning Errors

0 Severe Errors

4. Дамп памяти

Даны числа: 0, 20, 0, 30,

0, 40, -50, 0, 10, 0

После замены элементов в соответствии с условиями задачи:

Вывод: В ходе лабораторной работы овладели базовыми приемами программирования на языке Ассемблер с использованием условной адресации.

Соседние файлы в папке Lab 2
  • #
    25.05.2014113.15 Кб10Drawing1.vsd
  • #
    25.05.2014899 б10Ex1.asm
  • #
    25.05.20141.36 Кб9Ex12.asm
  • #
    25.05.2014403 б9Ex1DirAd.asm
  • #
    25.05.20141.4 Кб10Lab1.asm
  • #
    25.05.2014121.86 Кб12Лаба№2.doc