Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.05.2018, 00:05   #1
True Wade
 
Регистрация: 13.05.2017
Сообщений: 4
Репутация: 10
По умолчанию Реализация через макрос - A and B -> число.

Здравствуйте. Помогите пожалуйста с программой.

Задание: Реализация через макрос - A and B -> число.
Т.е. нужно логически умножить два числ и получить результат. И сделать это с помощью макросов.

Препод сказал, что нужно передать "and" как аргумент.
True Wade вне форума   Ответить с цитированием
Старый 26.05.2018, 00:28   #2
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,137
Репутация: 938
По умолчанию

True Wade у гугла спрашивал, как написать макрос?
__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Старый 26.05.2018, 00:37   #3
True Wade
 
Регистрация: 13.05.2017
Сообщений: 4
Репутация: 10
По умолчанию

Да, и гугол вроде тоже в этом не шарит
True Wade вне форума   Ответить с цитированием
Старый 26.05.2018, 00:38   #4
True Wade
 
Регистрация: 13.05.2017
Сообщений: 4
Репутация: 10
По умолчанию

Вот код:
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 в 01:02.
True Wade вне форума   Ответить с цитированием
Старый 27.05.2018, 21:01   #5
True Wade
 
Регистрация: 13.05.2017
Сообщений: 4
Репутация: 10
По умолчанию

Вот дополненный код. Но он всё равно далёк от идеала. Помогите чтоб выводило на экран.
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
True Wade вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация стека через массив Asya7 Помощь студентам 4 08.09.2015 00:13
реализация стека через массив el_gato_de_Ch Общие вопросы C/C++ 4 21.05.2013 22:40
Реализация через функцию c++\noob Общие вопросы C/C++ 0 08.03.2011 13:29
реализация через mvc Adblock PHP 6 24.11.2010 16:33
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51


19:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru