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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 20:07   #1
Yana777
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 10
По умолчанию Перевод с ассемблера на си ++

Здравствуйте.Помогите пожалуйста перевести команду с ассемблера на си++(для того же микроконтроллера-8051)
operX DATA 21H ; Определяем в памяти переменную X
operY DATA 22H ; Определяем в памяти переменную Y
resultZ DATA 23H ; Определяем в памяти результат Z
varR DATA 24H ; Определяем в памяти временную переменную
OK: MOV varR,#0 ; Обнуляем временную переменную
MOV A,operX ; Переменную X записываем в аккумулятор
JZ OK3 ; Переход на OK3 если А = 0
MOV B,#2 ; Записываем в регистр B
DIV AB ; Делим значение аккумулятора на значение регистра B
CLR A ; Обнуляем значение аккумулятора
CJNE A,B,STR1 ; Сравниваем значение аккумулятора и значение регистра B
MOV varR,#1 ; Если A<>B в varR записываем 1
STR1: MOV A,operY ; Переменную Y записываем в аккумулятор
JZ OK3 ; Переход на OK3 если А = 0
MOV B,#2 ; Записываем в регистр B
DIV AB ; Делим значение аккумулятора на значение регистра B
CLR A ; Обнуляем значение аккумулятора
CJNE A,B,STR2 ; Сравниваем значение аккумулятора и значение регистра B
INC varR ; Если A<>B к значению varR прибавляем 1
STR2: MOV A,varR ; Переменную R записываем в аккумулятор
CJNE A,#2,OK1 ; Сравниваем значение аккумулятора и 2
MOV resultZ,#1 ; Если A = 2 то Z = 1 (X,Y - четные)
JMP OK ; Безусловный переход
OK1: CJNE A,#1,OK2 ; Сравниваем значение аккумулятора и 1
MOV resultZ,#255 ; Если A = 1 то Z = 255 (из X,Y одно чётное, другое нечётное)
JMP OK ; Безусловный переход
OK2: CJNE A,#0,OK ; Сравниваем значение аккумулятора и 0
MOV resultZ,#0 ; Если A = 0 то Z = 0 (X,Y - нечетные)
JMP OK ; Безусловный переход
OK3: MOV resultZ,#128 ; Если X = 0 или Y = 0 то Z = 128
JMP OK ; Безусловный переход
END
Yana777 вне форума Ответить с цитированием
Старый 11.12.2012, 22:40   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Привет, Yana777

Опишите, что должна делать программа. Нужна формулировка задачи.

И ещё, у вас есть проверка: равна ли переменная operX нулю:

Код:
MOV	A,operX	 ; Переменную X записываем в аккумулятор
JZ	 OK3 ; Переход на OK3 если А = 0
Но до этого момента operX неинициализирована.

В какой среде программирования работаете?

Иван
8Observer8 вне форума Ответить с цитированием
Старый 12.12.2012, 18:51   #3
Yana777
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 10
По умолчанию Сама задача

Вычислить значение ф-ии z=(х=0....255 н=0...255) z=1 усли х,у -четные и z=0 если х,у--нечетные
Написать это на си++ для первого интеловского контроллера8051(программа в которой можно писать называется Франклин провью32)л
Yana777 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод бат файла на язык ассемблера stdio Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 36 28.02.2012 03:08
Изучение Ассемблера Robson_ Помощь студентам 3 20.02.2012 11:09
Вставка ассемблера в Си Влодимир Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.02.2011 05:05
Основы ассемблера Maksim_27_10 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 08.07.2010 12:24
Сравнение Си и Ассемблера... Sota Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 25.07.2007 16:15