Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Hidalgo08
Идеи становятся силой...
121 / 120 / 64
Регистрация: 08.12.2009
Сообщений: 445
1

Перестановка разрядов (byte)

28.09.2010, 00:34. Просмотров 581. Ответов 0
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста правильно ли выполнил задание, не судите строго это моя первая программа.
Вот задание:
Переставить байты в соответствии с таблицей:

7 6 5 4 3 2 1 0 - номер разряда
7 1 4 2 3 5 7 2 - номер разряда начальных данных

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.286
 
data        SEGMENT     BYTE
val         DB      10111111b   ;результат має дорівнювати 11111111b
res         DB      ?
data ENDS
 
code        SEGMENT BYTE
            ASSUME  cS:code, DS:data
 
 
 
BEGIN:
        mov     AX, data
        mov         DS, AX      ;встановлюємо регістр даних
 
        mov         DL, val         ;вхідний операнд записуємо в DL
        mov         DH, 0       ;результат будемо зберігати в DH, тому обнулюємо його
 
        mov         AL, 00000010b
        and         AL, DL      ;виділяємо 1й біт
        shl         AL, 5 
        or      DH, AL      ;встановлюємо цей біт у 6й розряд результату
 
        mov         AL, 00000100b
        and         AL, DL      ;виділяємо 2й біт
        shl         AL, 2 
        or      DH, AL      ;встановлюємо цей біт у 4й розряд результату
 
        mov         AL, 00000100b
        and         AL, DL      ;виділяємо 2й біт
        shr         AL, 2 
        or      DH, AL      ;встановлюємо цей біт у 0й розряд результату
 
        MOV         AL, 00001000b
        AND         AL, DL      ;виділяємо 3й біт
        OR      DH, AL      ;встановлюємо цей біт у 3й розряд результату
 
        mov         AL, 00010000b
        and         AL, DL      ;виділяємо 4й біт
        shl         AL, 1 
        or      DH, AL      ;встановлюємо цей біт у 5й розряд результату
 
        mov         AL, 00100000b
        and         AL, DL      ;виділяємо 5й біт
        shr         AL, 3 
        or      DH, AL      ;встановлюємо цей біт у 2й розряд результату
 
        mov         AL, 10000000b
        and         AL, DL      ;виділяємо 7й біт
        shr         AL, 6 
        or      DH, AL      ;встановлюємо цей біт у 1й розряд результату
 
        MOV         AL, 10000000b
        AND         AL, DL      ;виділяємо 7й біт
        OR      DH, AL      ;встановлюємо цей біт у 7й розряд результату
 
        mov         res, DH     ;записуємо результат у пам'ять
 
        NOP
 
        MOV         AX, 4C00h
        INT 21h             ;завершуємо роботу
code ENDS
END begin
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 00:34
Ответы с готовыми решениями:

Умножение Byte на Word и Word на Byte
Есть ли какая-то разница при умножении 1) Байта на Ворд 2) Ворда на Байт ...

разработать программу следующей перестановки разрядов байта
разработать программу следующей перестановки разрядов байта: значение 0-го...

Сдвиг регистра A на число разрядов, заданное в регистре B
Здравствуйте, уважаемые форумчане! В связи с отсутствием знаний в области...

подпрограмма (для Intel 80x86) определяющая количество двоичных разрядов (Доделать)
Помогите пожалуйста дописать программу, и разобраться в коде. Подпрограмма...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2010, 00:34

Вычислить выражения с типом BYTE
на TASM нужно вычеслить выражение z=(4*a-1+b/2)/(b*c-5) чтоб переменные были...

объясните byte ptr плз
Здравствуйте, недавно начал изучать ассемблер, и вот такой не понятный момент...

Перестановка слов.
Всем привет! Коллеги, обращаюсь с просьбой написать программу на ассемблере...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru