1 Востаннє редагувалося Taras (08.08.2014 11:01:08)

Тема: Допоможіть написати програму на асемблері

Привіт всім! Хто може допомогти написати програму?(Можемо домовитися про винагород)

Умова програми:
Програма для підрахунку людей які заходять і виходять з приміщення

На вході ультрафіолетовий або інфрачервоний промінь, при перетині променю в лічильник записується 1 і так далі. Якщо поставити 2 промені(пронумерувати їх 1,2): якщо перетинається 1, то в лічильник записується на вхід, якщо 2 то на вихід.При можливості щоб кожен перетин прив"язувався до часу і дати

2 Востаннє редагувалося Blast (08.08.2014 11:05:10)

Re: Допоможіть написати програму на асемблері

Taras написав:

Привіт всім! Хто може допомогти написати програму?(Можемо домовитися про винагород)

Умова програми:
Програма для підрахунку людей які заходять і виходять з приміщення

На вході ультрафіолетовий або інфрачервоний промінь, при перетині променю в лічильник записується 1 і так далі. Якщо поставити 2 промені(пронумерувати їх 1,2): якщо перетинається 1, то в лічильник записується на вхід, якщо 2 то на вихід.При можливості щоб кожен перетин прив"язувався до часу і дати

прохід має бути поділений на дві частини , щоб промені не були паралельними . Або ж має бути два проходи . + не стільки промень як датчик має бути .

3

Re: Допоможіть написати програму на асемблері

цього мало, чого на ассемблері, яка Ос чи це мікроконтрольор ? ...

4

Re: Допоможіть написати програму на асемблері

reverse2500 написав:

цього мало, чого на ассемблері, яка Ос чи це мікроконтрольор ? ...

Думаю мікроконтроллер , ардуіно чи щось на атмега .

5

Re: Допоможіть написати програму на асемблері

мікроконтролер має бути

6

Re: Допоможіть написати програму на асемблері

просто береш ардуіно і датчике руху , знімаєш "головку " і там буде лазер  . в коді всепросто просто при кожному спрацюванні ставиш щотчикм і все

7

Re: Допоможіть написати програму на асемблері

який? чому ми повинні розпитувати що саме вам потрібно? це не наше завдання, а ваше

8

Re: Допоможіть написати програму на асемблері

Запитайте викладача який мк використовувати у вашій, вангую, крусовій\дипломній

9 Востаннє редагувалося who (28.09.2014 11:38:06)

Re: Допоможіть написати програму на асемблері

Прихований текст
;/* entrance */;/Copyrigth by ******@*****
               ;/License: free for non commercial education purpose only
               ;/Waranty: AS IS

;/initials ES:SS:CS:DS = 0; SP = 0x400; IP = 0x7C00.

   org 0
   use16

   jmp far 0x7C0:init;

init:; /segment initialisation
   mov   ax, cs;
   mov   ds, ax;
   mov   cx, 16;
 @@:; /loop test
   push  cx;
   call  near gent;
    jnc  short .q;
 .e:
   inc   byte [user];
   jmp   short .dpy;
 .q:
   dec   byte [user];
 .dpy:
   call  near dpy;
 .dly:; /delay
   xor   ax, ax;
   int   0x16;
   pop   cx;
   loop  @b;
reboot:
db 0xEA,0x00,0x00,0xFF,0xFF;

;/procedures

btst  dw 0;
bmap  dw 0x00FF;
gent:; /get entrance
   mov   cx, [btst];
   bt    word [bmap], cx;
    jc   short .se;
 .sq:
   inc   word [btst];
   clc;
retn;
 .se:
   inc   word [btst];
   stc;
retn;

dpy:; /display
   call  tty;
   call  dcl;
   mov   al, 0xD;
   call  pch;
   mov   al, 0xA;
   call  pch;
retn;

cdg:; / convert digit
   add   al, 0x30;
   cmp   al, 0x3A;
    jb   .pch;
   add   al, 0x7;
 .pch:
   call  pch;
retn;

user  db 0;
dcl:; / dacimal
   mov   al, [user];
   mov   bl, 0xA;
   mov   cl, 0x0;
 .rp1:
   mov   ah, 0x0;
   div   bl;
   mov   dl, ah;
   inc   cx;
   push  dx;
   or    al, al;
    jnz  .rp1;
 .rp2:
   pop   ax;
   call  cdg;
   loop  .rp2;
retn;

pch:; / put char
   mov   ah, 0xE;
   int   0x10;
retn;

msg:
db 'users: ',0
tty:; /teletipe
   mov   ah, 0xE;
   mov   si, msg;
   jmp   .gch;
 .rpt:; /repeat
   int   0x10;
 .gch:; /get char
   lodsb;
   or   al, al;
    jnz .rpt;
retn;
Подякували: 0xDADA11C71

10

Re: Допоможіть написати програму на асемблері

До чого цей код сектора завантаження?

11

Re: Допоможіть написати програму на асемблері

Скомпілюйте код в fasm - Run|Compile (Ctrl+F9), помістіть його починаючи з найпершого сектору гнучкого диску (в цьому допоможе програма HxD) та запустіть його за допомогою Bochs-2.6.6 і ви побачите, що він виконує саме те що потрібно, а для ілюстрації цього ще й самотестується проглядаючи бітову карту (bmap) де 1 - спрацювання променя на вхід, а 0 - відповідно на вихід.

12

Re: Допоможіть написати програму на асемблері

По-перше помістіть код в тег code, по-друге це некропостинг, бо сам ТС давно не з’являвся, по-третє ми не знаємо ані апаратної ані програмної платформи, для якої треба виконати завдання. А взагалі дякую, що показали ваші знання, хоч може воно й не до місця :). Якщо ви вважаєте що до місця і воно може знадобитися студентам, то гарно оформіть ваш реліз, щоб і гугл бачив і око радувало.

13

Re: Допоможіть написати програму на асемблері

З вашого дозволу, почну спочатку. По перше, вже ваше перше запитання до мене у попередньому пості із запитанням про доречність коду (що містило, власне натяк на те що він є недоречним) є образливим для мене. По друге, ваші наступні зауваження (а по суті, повчання), якраз і є не доречними. Хоча б тому, що ви вже виявили свою некомпетентність в цьму питанні. Що випливає хочаб з того, що ви назвали викладений мною код - кодом сектору завантаження. Хоча, як ви можете бачити, він він не працію з дисковими секторами і відповідно нічого не завантажує. Щодо оформлення коду, то вимушений з вами все ж таки погодитись, але прийміть будь ласка до уваги, що це був мій перший пост на цьому форумі і вже у другому я все ж таки виправився. До того ж, хоча я й не помістив його в секцію коду та все ж таки приховав (деякою мірою) недоліки свого коду (написання якого, разом з часом на debuging, зайняло у мене до півтори години часу) помістивши в spoiler. Далі щодо некропостингу, поставлена Taras задача є неважкою і цікавою для мене, як може бути цікавою й для інших форумчан (та й не лише для студентів). Далі, як ви зауважили - не знання платформи, не позбавляє нас можливості вирішити саму задачу змоделювавши її на іншій платформі, що я й зробив на прикладі IBM PC (й насмілюся, знову ж таки з вашого дозволу, запропонувати даний спосіб й вам - якщо захочете комусь допомогти).

p.s. - При вій повазі до вас, сподівайсь я вас жодним чином не образив.

14

Re: Допоможіть написати програму на асемблері

По перше, вже ваше перше запитання до мене у попередньому пості із запитанням про доречність коду (що містило, власне натяк на те що він є недоречним) є образливим для мене.

пробачте, я не хотів вас нічим образити, а лише бдю за якістю розділу системного програмування. особисто мені складно читати код в немоноширинному шрифті. до того ж уявити, що для відповіді на поставлене питання потрібно писати код для сектора завантаження я ніяк не міг. це не применшує ваш фах, проте є екзотикою.

Що випливає хочаб з того, що ви назвали викладений мною код - кодом сектору завантаження. Хоча, як ви можете бачити, він він не працію з дисковими секторами і відповідно нічого не завантажує.

Це загальноприйнята назва, я теж колись писав подібні речі. Перший сектор на диску називається сектором завантаження (англійською - boot sector) - це загальноприйнята термінологія.

щодо оформлення коду, то вимушений з вами все ж таки погодитись

існує кнопка редагувати ;)

, але прийміть будь ласка до уваги, що це був мій перший пост на цьому форумі і вже у другому я все ж таки виправився.

звичайно, зауваження робиться для того, щоб виправити недоліки, а не, пробачте на слові, обісрати опонента.

Далі щодо некропостингу, поставлена Taras задача є неважкою і цікавою для мене, як може бути цікавою й для інших форумчан (та й не лише для студентів).

погоджуюся

А взагалі - ласкаво просимо на форумі програмістів, дискусії на форумі це звичне діло, звикайте.

15

Re: Допоможіть написати програму на асемблері

Залюбки приєднуюсь до "клубу любителів, шрифту: Courier New" 8)

16 Востаннє редагувалося 0xDADA11C7 (21.09.2014 22:07:34)

Re: Допоможіть написати програму на асемблері

В асортименті лише DejaVu Sans Mono і Nimbus Sans 8)

17

Re: Допоможіть написати програму на асемблері

Taras написав:

мікроконтролер має бути


часом не навчальний i8085?

18

Re: Допоможіть написати програму на асемблері

Taras написав:

мікроконтролер має бути

якщо PIC то звертайся