Top.Mail.Ru
Ответы

Всем добрый день! Впервые столкнулась с Assembler на учебе и сразу же возникли вопросы.

1)какая версия подойдет для windows 7 64bits?и где ее можно скачать?
2)а также дано элементарное (по мнению препода) задание и примерный листинг, где нужно только что то подставить и немного изменить.
Прошу помощи, поскольку самой разобраться пока не под силу.
задание:
Изучить МК PIC16F877A, систему адресации, регистры и важнейшие команды микроконтроллера. Получить общее представление о работе микроконтроллера с Гарвардской архитектурой на примере PIC16F877A. Ознакомиться с интегрированной средой разработки MPLAB. Изучить основные функции и назначение основных пунктов меню. Получить практические навыки по работе с программными средствами отладки микропроцессорных систем ISIS Proteus.
Вариант задания 6
При высоком уровне на RE0 – вычислить D=3*B+C,
а при низком вычислить D=2*B-C
B – Байт полученный с порта B, C – байт полученный с порта C, D – байт выведенный на порт D.

и листинг, который прилагается к нему:
list p=16f877A ; Выбор микроконтроллера
include "p16f877A.inc" ; Подключение библиотек к компилятору

cblock 0x71 ; Начало блока переменных
;здесь можно присвоить имена регистрам с адреса 0х71 по порядку
A0 ; Значение из порта Е
L1 ; Значение из порта B
L2 ; Значение из порта C
SUMMA ; Сумма
endc ; Конец блока переменных
; Начало програмы
LABEL1 ; Метка для перехода
; Получение байта с порта B
BCF STATUS,RP0 ; Выбор банка 0
CLRF PORTB ; Очистить регистр порта B
MOVLW B'11111111' ; Загрузить B'11111111' в регистр W
BSF STATUS,RP0 ; Выбор банка 1
MOVWF TRISB ; Установить все выводы порта B как логические входы
BCF STATUS,RP0 ; Выбор банка 0
MOVF PORTB,0 ; Загрузить в регистр W значение из порта B
MOVWF L1 ; Загрузить в L1 значение из регистра W
; Получение байта с порта C
BCF STATUS,RP0 ; Выбор банка 0
CLRF PORTC ; Очистить регистр порта C
MOVLW B'11111111' ; Загрузить B'11111111' в регистр W
BSF STATUS,RP0 ; Выбор банка 1
MOVWF TRISC ; Установить все выводы порта C как логические входы
BCF STATUS,RP0 ; Выбор банка 0
MOVF PORTC,0 ; Загрузить в регистр W значение из порта C
MOVWF L2 ; Загрузить в L2 значение из регистра W
; Получение байта с порта E
BCF STATUS,RP0 ; Выбор банка 0
CLRF PORTE ; Очистить регистр порта E
MOVLW B'00000111' ; Загрузить B'11111111' в регистр W
BSF STATUS,RP0 ; Выбор банка 1
MOVWF TRISE ; Установить все выводы порта B как логические входы
MOVLW B'00000111' ; Загрузить B'00000111' в регистр W
MOVWF ADCON1 ; Установить все выводы порта A и E как логические
BCF STATUS,RP0 ; Выбор банка 0
MOVF PORTE,0 ; Загрузить в регистр W значение из порта E
MOVWF A0 ; Загрузить в A0 значение из регистра W
; Выполнение арифметических операций над полученными числами

BTFSC A0,0 ; Проверить бит 0 в переменной A0, пропустить если = 0
GOTO K1
BTFSS A0,0 ; Проверить бит 0 в переменной A0, пропустить если = 1
GOTO K2

K1
BCF STATUS,0
MOVF L1,0;в регистр W=B
RLF L1,1 ;2B
ADDWF L1,0 ;3B
ADDWF L2,0 ;C

MOVWF SUMMA
GOTO K4
K2
BCF STATUS,0
MOVF L2,0;в регистр W=B
RLF L1,1 ;2B
SUBWF L1,0 ;C
MOVWF SUMMA
K4
; Вывод значения на индикатор U4
banksel TRISD ; Выбор второго банка регистров
CLRF TRISD ; Очистка регистра-защелки порта D
banksel PORTD ; Выбор первого банка регистров
MOVF SUMMA,0 ; Загрузить SUMMA в регистр W
MOVWF PORTD ; Пересылка аккумулятора (W) в порт D
; Переход в начало программы
GOTO LABEL1 ; Безусловный переход на метку LABEL1
END

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

Эти все вопросы нужно преподавателю адресовать или вы заочно учитесь? Ассемблер нужен для pic-a и к "windows 7 64bits" он отношения не имеет. Он в MPLAB-е же есть, а я и не помню )))

Аватар пользователя
Оракул
10лет

млять, найди себе учебник
в сети их полно