Отговори на тема  [ 82 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща
Задача асемблер за PIC16C73 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Фев 09, 2014 10:22 pm
Мнения: 3
Мнение Задача асемблер за PIC16C73
Здравейте,

Контролера е PIC16C73 и използваме mplap за информация.
Ето и условието на задачата

Да се състави програма на асемблер, която:
1. Да съдържа подпрограма, пресмятаща израза:
R = A.4 – B/4 + 178,
където А – еднобайтова променлива в данновата памет;
В – еднобайтова променлива в данновата памет.
2. Подпрограмата да се извика за елементите на два масива от по 12 еднобайтови числа.

Мога да предоставя и примерна задача подобна на тази.
Ако не се намери някой доброволец почитащ червения кръст може и срещу заплащане :)
Или предлагам мой труд като Java Web Developer.

Поздрави Валери


Нед Фев 09, 2014 10:30 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Фев 09, 2014 10:22 pm
Мнения: 3
Мнение Re: Задача асемблер за PIC16C73
Май съм пуснал темата на грешно място. Моля някой с права да я премести в Микроконтролери - Програмиране раздела.


Нед Фев 09, 2014 10:33 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Задача асемблер за PIC16C73
Темата ти е най-вече за "Обяви".

А сега може би един тъп въпрос - какво ще прави тоя дядка като сметне нещата - ще започне да подскача на един крак ли, що ли ?

И накрая решението - изтегли си някъв (къв да е) компилатор за пик-чета - за съжаления на Java няма, тъй че ще трябва да се примириш с С, паскал или бейсик. Написваш си кода, компилираш го, преписваш компилираното, като махаш(или променяш) коментарите дето ги слага компилатора и си готов. Не че няма ентусиасти тука, ама едва ли някой ще седне ей сега да пише на асемблер.

И последно - питай даскала R каква трябва да е : byte, shortint, integer, longint, float, real , signed, unsigned ? Щото за пикчето има голямо значение...


Пон Фев 10, 2014 12:20 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Задача асемблер за PIC16C73
Че тя задачата е 5 реда на асемблер :D
Даскала ти е дал най-лесния вариант за умножение и делене(четна константа). В случая резултата от умножение по 4 ти е А и два пъти RLF, a делене на 4 ти е B и два пъти RRF. Преди всяка RLF/RRF операция трябва да нулираш С, да не се намъкне в резултата. Ако резултата от умножението е повече от 8 бита се гледа DC и ти трябва още една променлива за старшите битове.


Пон Фев 10, 2014 10:04 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Задача асемблер за PIC16C73
Да де ама R не е уточнено какво е - щото ако е байт - лесно, ама ако е някакъв интиджер - вече е друго.
За масива - гадинката има FSR тъй че и туй олеснява допълнително задачата.


Пон Фев 10, 2014 8:22 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Задача асемблер за PIC16C73
Cekins написа:
Да де ама R не е уточнено какво е - щото ако е байт - лесно, ама ако е някакъв интиджер - вече е друго.
За масива - гадинката има FSR тъй че и туй олеснява допълнително задачата.

Другото неуточнено е в какъв размер се прави самата математика. Тя може да се прави както в инт (дефаулта за Ц за цели числа), така и в друг вид. И не е задължително резултата да съвпада с начина на смятане.

ПП:Ако не е тайна тази задача в какво учебно заведение е?


Пон Фев 10, 2014 8:59 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Задача асемблер за PIC16C73
Аз по-горе писах че не са уточнени типовете. Искат му го на асемблер написано - там май няма дефоулт.


Вто Фев 11, 2014 10:21 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Задача асемблер за PIC16C73
R = A.4 – B/4 + 178
се събира в int16_t значи в такъв тип трябва да е отговора.

_________________
Warriors of the Night, ASSEMBLER!!!


Вто Фев 11, 2014 10:27 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Задача асемблер за PIC16C73
ike написа:
R = A.4 – B/4 + 178
се събира в int16_t значи в такъв тип трябва да е отговора.

R може да си е всякакъв тип, независимо че се събира в int16_t.


Вто Фев 11, 2014 11:03 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Задача асемблер за PIC16C73
Никъде не е споменато изискване за типа на R, т.е. не е нужно да си усложняваме живота с разсъждения "какво може", "какво би било...", "ако..." и т.н. В случая е важно да се напише на асемблер и резултата винаги да е верен. Уловките по-скоро са 16 битовaтa променливa за резултат и приоритета на аритметиката.


Вто Фев 11, 2014 12:39 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Вто Юни 27, 2006 11:13 am
Мнения: 381
Местоположение: Варна
Мнение Re: Задача асемблер за PIC16C73
човека иска асемблер - ротации, събирания, никви инт никви чар :)


Вто Фев 11, 2014 12:43 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Задача асемблер за PIC16C73
CarBeta написа:
В случая е важно да се напише на асемблер и резултата винаги да е верен. Уловките по-скоро са 16 битовaтa променливa за резултат и приоритета на аритметиката.


Точно това "винаги да е верен" си май неизпълнимо.
Например: Ако А = 64 и B = 0, то

64*4+0xb2 = 0xb2, ако се смята в int8
= 0x1b2, ако се смята в int16

Иначе вероятно за целите на задачата, надали има значение. :)


Вто Фев 11, 2014 12:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Задача асемблер за PIC16C73
Е как пък да няма значение? Ако е Int8 няма да го интересува C флага, няма да има допълнителна команда да си оправя старшия байт. Освен това А*4 ако примерно А=180 и ако А се смята само като байт (демек rlf два пъти) е едно а ако трябва да си се сметне като int16 с проверка на кери и т.н. става друго. Въобще заданието е страшно непълно. Очевидно е, че който е дал заданието иска да види rrf и rlf ама дали с пренос или без и т.н. - не е ясно. Затова, както още в началото казах - тегли се един компилатор, написва си го на къвто език си ще, компилира, поочиства кода да изглежда като писан на ръка и ще блесне пред даскала. Пък че нищо няма да научи - тва вече друга тема.


Вто Фев 11, 2014 1:03 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Задача асемблер за PIC16C73
Условието си е много ясно - асемблер, MPlab
Цитат:
където А – еднобайтова променлива в данновата памет;
В – еднобайтова променлива в данновата памет.

Какви интежъри ви гонят на асемблер. Работи се с байтове в хекс. Естествено че R ще бъде двубайтова променлива ако искаме да смята вярно за всички стойности от 0x00 до 0xFF. То и това е уловка, щото с по-големи стойности за А няма как да мине без пренос. Идеята е да се замисли човек как с 8 битов контролер да скалъпи цялата галимация.


Вто Фев 11, 2014 2:13 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Пон Мар 22, 2010 8:52 pm
Мнения: 328
Мнение Re: Задача асемблер за PIC16C73
CarBeta написа:
Условието си е много ясно - асемблер, MPlab
Цитат:
където А – еднобайтова променлива в данновата памет;
В – еднобайтова променлива в данновата памет.

Какви интежъри ви гонят на асемблер. Работи се с байтове в хекс. Естествено че R ще бъде двубайтова променлива ако искаме да смята вярно за всички стойности от 0x00 до 0xFF. То и това е уловка, щото с по-големи стойности за А няма как да мине без пренос. Идеята е да се замисли човек как с 8 битов контролер да скалъпи цялата галимация.


И кое му е естественото? В С е нормално цялата математика да е int (16 или 32 зависи от компилатора, ако A и B са char или int), Обаче няма изисквания за R да е int, може да си е char. Въпрос на мислене и на условие на задачата си е, а в случая недефинирано. Поне в цитираното условие.


Вто Фев 11, 2014 2:50 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 82 мнения ]  Отиди на страница 1, 2, 3, 4, 5, 6  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни