Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2016, 23:35   #1
Miruha007
Новичок
Джуниор
 
Регистрация: 05.10.2016
Сообщений: 1
Сообщение Помогите разобраться.

Добрый день! Нужно написать программу на ассемблере для с 51 микроконтроллера, которая будет решать уравнение вида:
y= x4*x3*(не x1)+ (не х4)*х1*(не х2)*(не х3)+х1*(не х2)*х3+(не х3)*х2*(не х1);
Программа должна решаться табличным методом. Есть исходник программы, но не могу сообразить как исправить программу:


Код:
portA equ 0f0h; адрес порта вывода ППА со светодиодами 
PortR equ 0f3h; адрес регистра управления ППА К580ВВ55
Timer equ 0e0h; адрес таймера 
Т0 TimerU equ 0e3h; адрес регистра управления таймера К580ВИ53 
; описание переменных 
org 1a00h 
x db 0001; x-переменная типа байт (содержит зн-е 0000x4x3x2x1) 
t ds 2; t-переменная типа слово 
;таблица истинности функции 
tabl db 01h,01h,01h,01h,0,0,0,01h,0,01h,0,0,0,01h,01h,01h 
org 1900h; начальный адрес программы 
nach: mvi a,8bh; инициализация режимов работы портов ППА 
out PortR; 
mvi a,30h; инициализация режимов работы таймера 
out TimerU; 
mvi a,0ffh; загрузка в таймер константы 0FFFFh 
out Timer; и запуск таймера на вычитание 
out Timer 
; табличный метод 
lxi h,tabl; в HL адрес таблицы истинности 
lda x; чтение из х в А значения переменных х4х3х2х1 
ani 0Fh; выделение младшей тетрады 
mvi d,0; формирование в паре DE 2-байтного смещения 
mov e,a dad d; получение в HL суммы смещения и адреса таблицы 
mov a,m; чтение значения по адресу HL из таблицы 
cma out porta; выдача результата на светодиоды 
sub a; останов таймера 
out TimerU 
Kon: lxi h,t; чтение 2-х байтного значения из таймера 
in Timer; 
mov m,a; сохранение его в ячейке t (мл. байт значения) 
in Timer 
inx h 
mov m,a; сохранение его в ячейке t+1 (cт. байт значения) 
jmp 2020h; останов программы, переход на Монитор 
end
Помогите пожалуйста, кому не сложно.

Последний раз редактировалось Аватар; 06.10.2016 в 10:34.
Miruha007 вне форума Ответить с цитированием
Старый 06.10.2016, 09:50   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Вообще-то это код для процессора 8080
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 12.10.2016, 06:04   #3
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

Вы пишите c51- а это Си компилятор. Для 8051 надо Asm51. В топике для Си и публекуйте тему.
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться! Виталик124 Паскаль, Turbo Pascal, PascalABC.NET 3 08.02.2014 16:07
Помогите разобраться Proof БД в Delphi 13 19.05.2008 10:59
Помогите разобраться! Holodok Помощь студентам 12 02.05.2008 18:13