Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
913.41 Кб
Скачать

Завдання для самостійної роботи

1. Задано вміст регістрів AL , BL і DL . Знайти вміст регістрів після виконання групи команд :

xor AL,BL

and BL,DL

text AL,DL

not AL

or DL,AL.

де

AL

BL

DL

1

00110011b

10010111b

11010110b

2

10110011b

11010111b

11010110b

3

10110011b

10010111b

11010110b

4

10101011b

10010111b

11010110b

5

10111000b

01010101b

01010110b

6

01110011b

10110111b

11010110b

7

10110011b

10000111b

11010000b

8

00110011b

10010111b

01010110b

9

10110010b

10010101b

11110100b

10

01110111b

10010110b

10010110b

11

00111011b

10011011b

11110110b

12

10110101b

11011110b

11011110b

13

10110111b

10011111b

11011110b

14

10101111b

10010111b

11011010b

15

10111100b

01011101b

01010110b

16

01110111b

10110111b

11011010b

17

10110110b

10010111b

11010100b

18

00111001b

10110111b

01010110b

19

10110110b

10110101b

01110101b

20

01110111b

10110110b

10010111b

2. Написати процедуру для обчислення виразу без використання операцій множення та ділення :

Вираз

Змінні

1

a=a*2+(c/8+(a*8+b/4+c)*2-9)/2+c

a=2ah b=33 c=4ch d=43h

2

a=b/8+(d*16-(d*256-(a*2+c)*4)/2)-a

a=6ch b=72h c=32h d=19

3

a=b/32-(c*16+2*(а*2+d/8-1))+c*128

a=71 b=2ah c=4bh d=68h

4

a=(b*4-b*2-(c*4+(d+7)/4)/8+d*256-a

a=31h b=73 c=14 d=67

5

a=b/4-d*8+(а*512-d*128)/2+(b+с)*2

a=13h b=24 c=1eh d=5bh

6

a=b*512+c/4-(8*a+32*b)/1024+8*d

a=37h b=39 c=6bh d=2eh

7

a=(a*64+(d*1024-(b+c)*2)/32-c)/2+b

a=34h b=93 c=3eh d=97

8

a=a*8+c*2+(d*32-(6+(a+c)*2)/4)*2+b

a=31h b=64 c=56 d=15h

9

a=a*1024-(b+(c+1)*8+d/4)*8+c/16

a=4ch b=44 c=85 d=2ch

10

a=b*512-(d*32+(b+1+c)/4)-d/4-c*4

a=30 b=3eh c=2ah d=22

11

a=(a*4+b*32-(d*8+1)/4-c+1)/4+b*4-c

a=1dh b=38h c=74 d=3ah

12

a=(b*128-d*64+(25-(b+c)/32)-a*16)/2

a=57h b=31h c=46 d=3fh

13

a=b*16+(c*128+(d-1)/2+a*32)/256

a=1bh b=5eh c=2ah d=15h

14

a=(a*64-b*16-(d+b*32)/8+c*16)/256

a=70h b=83 c=50 d=16h

15

a=b*32-(c/8+d*4+9-b*128)/256-a*16

a=73 b=95 c=89 d=24h

16

a=a*1024-(c*32+(d+1)/8-a/4)+b*8)/2

a=36h b=39 c=43 d=33

17

a=b*512-c*8+(7+(b-c)/8-d/4)/2-a*16

a=25h b=3eh c=29 d=82

18

a=b*16+c*8-(c+a)/2-(b*64+d+7)/128

a=30h b=62h c=24 d=17

19

a=a*256+((b+d*2-1)/4-(b+c)/2)*2-c

a=10 b=21h c=18h d=86

20

a=(b+а)*64+c*32-(a/2+d*128)/256

a=33h b=54 c=83 d=38h

3. Задано без знакова змінна a розміром в байт. Написати процедуру яка обчислює :

    1. суму чисел записаних в старші та молодші тетраді;

    2. суму чисел записаних з 1 по 6 біт;

    3. суму чисел записаних з 0 по 5 біт;

    4. різницю між числом в старші та молодші тетраді;

    5. різницю між числом в бітах 0 по 5 та числом в бітах 3 по 7;

    6. кількість бітів із значенням 0;

    7. кількість бітів із значенням 1;

    8. різницю між кількість бітів із значенням 1 та 0;

    9. різницю між числом в молодші та молодші тетраді;

    10. побітову логічну суму в старші та молодші тетраді;

    11. побітову логічну суму за модулем 2 в старші та молодші тетраді;

    12. побітовий логічний добуток старші та молодші тетраді;

    13. побітовий логічний добуток бітів з 1 до 3 та 5 до 7;

    14. побітову логічну суму бітів з 0 до 2 та 5 до 7;

    15. побітову логічну суму за модулем 2 бітів з 2 до 5 та 4 до 7;

    16. кількість бітів із значенням 1 в розрядах від 1 до 6;

    17. кількість бітів із значенням 0 в розрядах від 2 до 5;

    18. суму числа записаного у молодшій тетраді та інвертованого числа записаного у старші тетраді;

    19. різницю числа записаного у молодшій тетраді та інвертованого числа записаного у старші тетраді;

    20. суму інвертованого числа записаного у молодшій тетраді та інвертованого числа записаного у старші тетраді;

Додатково.

4. Написати процедуру кодування символьної рядка, помінявши місцями старшу та молодшу тетраду кожного байта.

Лабораторна робота № . 6

Тема: Програмування мовою асемблера цілочислових виразів.

Мета. Вивчення команд множення та ділення цілочислових даних. Програмування арифметичних виразів.

План заняття :

1. Знакове та беззнакове множення (MUL, IMUL).

2. Знакове та беззнакове ділення (DIV, IDIV).

3. Команди розширення знаку (CBW,CWD).

4.Команди зміни ознак (CLC, STC, CMC, CLD, STD, CLI, STI).

Теоретичні відомості

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