|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2012, 20:07 | #1 |
Пользователь
Регистрация: 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 |
11.12.2012, 22:40 | #2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Привет, Yana777
Опишите, что должна делать программа. Нужна формулировка задачи. И ещё, у вас есть проверка: равна ли переменная operX нулю: Код:
В какой среде программирования работаете? Иван |
12.12.2012, 18:51 | #3 |
Пользователь
Регистрация: 19.10.2012
Сообщений: 10
|
Сама задача
Вычислить значение ф-ии z=(х=0....255 н=0...255) z=1 усли х,у -четные и z=0 если х,у--нечетные
Написать это на си++ для первого интеловского контроллера8051(программа в которой можно писать называется Франклин провью32)л |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевод бат файла на язык ассемблера | 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 |