|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.05.2018, 23:05 | #1 |
Регистрация: 13.05.2017
Сообщений: 4
|
Реализация через макрос - A and B -> число.
Здравствуйте. Помогите пожалуйста с программой.
Задание: Реализация через макрос - A and B -> число. Т.е. нужно логически умножить два числ и получить результат. И сделать это с помощью макросов. Препод сказал, что нужно передать "and" как аргумент. |
25.05.2018, 23:28 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
True Wade у гугла спрашивал, как написать макрос?
Нашедшего выход - затаптывают первым..
|
25.05.2018, 23:37 | #3 |
Регистрация: 13.05.2017
Сообщений: 4
|
Да, и гугол вроде тоже в этом не шарит
|
25.05.2018, 23:38 | #4 |
Регистрация: 13.05.2017
Сообщений: 4
|
Вот код:
begin segment Logic macro Action, A, B mov dx, offset A mov ah, 9 mov ax, A Action ax, B int 21h endm assume cs: begin start: Logic and, 7, 12 mov ax, 4c00h int 21h begin ends end Start Если можете, подскажите чтоб он работал ? Пожалуйста Последний раз редактировалось True Wade; 26.05.2018 в 00:02. |
27.05.2018, 20:01 | #5 |
Регистрация: 13.05.2017
Сообщений: 4
|
Вот дополненный код. Но он всё равно далёк от идеала. Помогите чтоб выводило на экран.
Logic macro Action, Op1, Op2 mov ax, Op1 Action ax, Op2 endm _stack segment stack db 1024 dup(?) _stack ends data segment A dw 7 B dw 12 C dw ? asAnd db ' and ', '$' asEqu db ' = ', '$' data ends code segment assume CS:code, DSata main: mov ax, data mov ds, ax mov ax, [A] call ShowBin mov ah, 09h lea dx, [asAnd] int 21h mov ax, [B] call ShowBin mov ah, 09h lea dx, [asEqu] int 21h Logic and, [A], [B] mov [C], ax call ShowBin mov ax, 4c00h int 21h ;выводит на экран в двоичной системе счисления содержимое регистра AX ; входные данные: ; ax - число для отображения ShowBin proc push ax push bx push cx mov bx, ax ; из-за распределения регистров ; при выводе на экран с помощью int 29h, ; выводимое число будет находится в bx mov cx, 16 ; переменная цикла равна количеству бит в слове @@For: mov ax, '0' ; в регистрах al=код символа '0', ah=00h shl bx, 1 ; выделение бита adc al, ah ; сложение кода символа '0' со значением выделенного бита int 29h loop @@For pop cx pop bx pop ax ret ShowBin endp code ends end main |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация стека через массив | Asya7 | Помощь студентам | 4 | 07.09.2015 23:13 |
реализация стека через массив | el_gato_de_Ch | Общие вопросы C/C++ | 4 | 21.05.2013 22:40 |
Реализация через функцию | c++\noob | Общие вопросы C/C++ | 0 | 08.03.2011 12:29 |
реализация через mvc | Adblock | PHP | 6 | 24.11.2010 15:33 |
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос | gregory1b | Microsoft Office Excel | 2 | 14.10.2010 11:51 |