Скачиваний:
67
Добавлен:
11.02.2014
Размер:
33.79 Кб
Скачать

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

ЗАДАНИЕ

Ввести с клавиатуры массив а[10] цифр от 0 до 9. Все элементы на нечетных местах заменить цифрами от 1 до 9. Полученный массив выведите на экран.

Рабочая программа

.model small

.stack 256

.data

mas db 10 dup(?)

.code

start:

mov ax,@data

mov ds,ax

xor ax,ax

mov cx,10

mov si,0

cycl:

mov ah,01h

int 21h

sub al,30h

mov mas[si],al

mov ah,02h

mov dl,13

int 21h

mov dl,10

int 21h

inc si

loop cycl

mov ah,02h

mov dl,13

int 21h

mov dl,10

int 21h

mov si,0

mov cx,5

mov bl,1

zamena:

mov mas[si],bl

inc bl

inc si

inc si

loop zamena

mov si,0

mov cx,10

slow:

mov ah,02h

mov dl,mas[si]

add dl,30h

int 21h

mov dl,09h

int 21h

inc si

loop slow

exit:

mov ax,4c00h

int 21h

end start

ФАЙЛ-ЛИСТИНГ

1 0000 .model small

2 0000 .stack 256

3 0000 .data

4 0000 0A*(??) mas db 10 dup(?)

5 000A .code

6 0000 start:

7 0000 B8 0000s mov ax,@data

8 0003 8E D8 mov ds,ax

9 0005 33 C0 xor ax,ax

10 0007 B9 000A mov cx,10

11 000A BE 0000 mov si,0

12 000D cycl:

13 000D B4 01 mov ah,01h

14 000F CD 21 int 21h

15 0011 2C 30 sub al,30h

16 0013 88 84 0000r mov mas[si],al

17 0017 B4 02 mov ah,02h

18 0019 B2 0D mov dl,13

19 001B CD 21 int 21h

20 001D B2 0A mov dl,10

21 001F CD 21 int 21h

22 0021 46 inc si

23 0022 E2 E9 loop cycl

24 0024 B4 02 mov ah,02h

25 0026 B2 0D mov dl,13

26 0028 CD 21 int 21h

27 002A B2 0A mov dl,10

28 002C CD 21 int 21h

29 002E BE 0000 mov si,0

30 0031 B9 0005 mov cx,5

31 0034 B3 01 mov bl,1

32 0036 zamena:

33 0036 88 9C 0000r mov mas[si],bl

34 003A FE C3 inc bl

35 003C 46 inc si

36 003D 46 inc si

37 003E E2 F6 loop zamena

38 0040 BE 0000 mov si,0

39 0043 B9 000A mov cx,10

40 0046 slow:

41 0046 B4 02 mov ah,02h

42 0048 8A 94 0000r mov dl,mas[si]

43 004C 80 C2 30 add dl,30h

44 004F CD 21 int 21h

45 0051 B2 09 mov dl,09h

46 0053 CD 21 int 21h

47 0055 46 inc si

48 0056 E2 EE loop slow

49 0058 exit:

50 0058 B8 4C00 mov ax,4c00h

51 005B CD 21 int 21h

52 end start

ВЫВОД: в результате выполненной работы научились программировать алгоритмы циклической структуры на языке ассемблера с применением сложных типов данных, в данном случае массивов с использованием команд условного и безусловного перехода.

Соседние файлы в папке лабораторные работы по ASSAMBLER