Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
1

авиа радар

04.04.2011, 22:12. Показов 5529. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем! кто может помочь с такой задачей нужно написать программу на ассемблере типа "старый авиа радар", который крутится по кругу и когда находит самолет (пиксель) подсвечивает его...
всем отписавшимся заранее огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2011, 22:12
Ответы с готовыми решениями:

Включить авиа режим
Здравствуйте. Подскажите можно ли программно включить авиа режим на android 5 и выше, если да то...

3D - радар
Гутен моргэн! Извиняйте за некоторые вольности моего языка, но, думаю, так будет несколько...

Проект радар
Добрый день друзья. Требуется реализовать гидроакустический радар, на котором будут отображаться...

Радар из MapView
Всем привет! Пишу приложение-радар, которое представляет из себя просто черный экран с...

21
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
06.04.2011, 18:57  [ТС] 2
ну или хотя бы что-то типа секундной стрелки...

Добавлено через 13 минут
и еще забыл указать асемблер типа 80х86
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
08.04.2011, 18:01 3
Лучший ответ Сообщение было отмечено как решение

Решение

FASM
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
org 100h
mov  ax,13h
int  10h
 
;очищаем видеобуффер
mov  di,screen
mov  cx,16000
xor  eax,eax
rep  stosd
 
push 0A000h
pop  es
 
;устанавливаем палитру (63 градации зелёного)
mov  cx,63
@@:mov  dx,3C8h
   mov  ax,cx
   out  dx,al
   inc  dx
   xor  al,al
   out  dx,al
   mov  ax,cx
   out  dx,al
   xor  al,al
   out  dx,al
loop @b
 
fldz
main:fadd    [x]
     fld     st0
     fsincos
     fmul    [aspectratio] ;чтобы получился круг нужно учитывать отношение высоты к ширине (240/320=0.75)
     fxch    st1
 
     ;рисуем линию
     fldz
     fldz
     mov  cx,120
     @@:fadd st0,st2
        fist word[esp-4]
        fxch st1
        fadd st0,st3
        fist word[esp-2]
        fxch st1
        imul di,[esp-2],320
        add  di,[esp-4]
        mov  byte[screen+di+32160],63
    loop @b
 
    fstp st0
    fstp st0
    fstp st0
    fstp st0
 
    ;затухание цвета
    inc  bx
    test bx,15
    jne skip
      mov  di,63999
      @@:sub  byte[screen+di],1
         adc  byte[screen+di],0
         dec  di
      jne @b
    skip:
 
    ;ожидание обратного вертикального хода луча
    mov  dx,3DAh
    @@:in   al,dx
       test al,8
    je @b
 
    ;копируем видеобуффер на экран
    mov  si,screen
    xor  di,di
    mov  cx,16000
    rep  movsd
 
    ;если нажат escape - выход
    in   al,60h
    dec  al
jne main
 
ret
x           dd 0.007
aspectratio dd 0.75
screen:
3
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
09.04.2011, 07:11 4
Лучший ответ Сообщение было отмечено как решение

Решение

nascar, код murderer'a на MASM
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
; masm dos com #
.286
.model tiny
.code
org 100h
start:  mov ah,0Fh  ;узнать номер текущего видеорежима
    int 10h
    mov video_ord,al
 
    mov  ax,13h
    int  10h 
;очищаем видеобуффер
    mov  di,offset screen
    mov  cx,32000
    xor  ax,ax
    rep  stosw 
    push 0A000h
    pop  es 
;устанавливаем палитру (63 градации зелёного)
    mov  cx,15;63
@@: mov  dx,3C8h
    mov  ax,cx
    out  dx,ax
    inc  dx
    out  dx,al
    xor  al,al
    out  dx,al
    loop @b 
    fldz
main:   fadd x
        fld  st
.386
        fsincos
        fmul aspectratio ;чтобы получился круг нужно учитывать отношение высоты к ширине (240/320=0.75)
        fxch    st(1) 
     ;рисуем линию
        fldz
        fldz
        mov  cx,120
@@: fadd st,st(2)
        fist word ptr [esp-4]
        fxch st(1)
        fadd st,st(3)
        fist word ptr [esp-2]
        fxch st(1)
        imul di,[esp-2],320
        add  di,[esp-4]
        mov  byte ptr [screen+di+32160],15;63
        loop @b 
        fstp st
        fstp st
        fstp st
        fstp st  
    ;затухание цвета
        inc  bx
        test bx,7;15
        jne skip
        mov  di,63999
@@: sub  byte ptr [screen+di],1
        adc  byte ptr [screen+di],0
        dec  di
        jne @b
skip: 
    ;ожидание обратного вертикального хода луча
        mov  dx,3DAh
@@: in   al,dx
        test al,8
        je @b 
    ;копируем видеобуффер на экран
    mov  si,offset screen
        xor  di,di
        mov  cx,32000
        rep  movsw 
    ;если нажат escape - выход
        in   al,60h
        dec  al
    jne main
        mov ax,word ptr video_ord;восстановление видеорежима
    int 10h
    retn
x           dd 0.007
aspectratio dd 0.75
video_ord db 0,0    ;значение текущего видеорежима
screen:
end start
murderer, я добавил запоминание текущего режима и его восстановление при выходе из программы, уменьшил градацию зеленого с 63 до 15 чтобы было больше похоже на луч, а не на окружность, чуток подправил заполнение палитры и поменял часть 32-разрядных команд на 16-разрядные. ПС Славная реализация у Вас поучилась, ну об этом Вы и так знаете
3
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
09.04.2011, 19:17  [ТС] 5
murderer огромное Вам спасибо, все заработало....
mikl__ и Вам тоже спасибо, но к сожалению Вашу не смог запустить, возможно проблемы с компилятором... Вы были правы насчет шлейфа от линии он слишком длинный, не могу понять как бы его немного уменьшить, если меняю то значение которое меняли вы (63 на 15) то зеленый цвет меняется на розовый....
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
09.04.2011, 19:35 6
закомментируй jne skip
1
232 / 102 / 6
Регистрация: 18.04.2010
Сообщений: 294
09.04.2011, 20:37 7
Я в строке 57 выставил единицу, а в 20 и 39 - двадцать. Вышло довольно красиво. Чтобы умел - добавил бы какие-нибудь срабатывания красным)
1
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
09.04.2011, 22:56  [ТС] 8
У меня еще один вопросик...
а вот из *.asm в *.obj у меня получилось переконвертировать, а вот из *.obj в *.exe тоже нужно команду написать, а вот какую.....???

Добавлено через 47 минут
точнее не обджект а ком...
0
232 / 102 / 6
Регистрация: 18.04.2010
Сообщений: 294
10.04.2011, 00:51 9
Код
ml.exe /Zi /c start.asm
link16.exe /CODEVIEW /t start.obj
Я так компилировал в masm32.
/Zi и /CODEVIEW для отладочной информации.
1
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
10.04.2011, 11:10  [ТС] 10
к сожалению у меня нет микро ассемблера, только фаст, в турбо знаю что нужно прописать tasm.exe start.asm и после tlink.exe start.obj
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
10.04.2011, 11:27 11
obj можно и tlink`ом слинковать.
Код
tlink.exe /t start.obj
1
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
10.04.2011, 11:30  [ТС] 12
у меня не обдж а КОМ...
0
232 / 102 / 6
Регистрация: 18.04.2010
Сообщений: 294
10.04.2011, 12:24 13
Так .com - исполняемый файл DOS. Он запускается как и .exe, его не обязательно конвертировать во что-либо.
1
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
10.04.2011, 17:44  [ТС] 14
ok, тогда спасибо......
как насчет идеи, о том как туда втулить самолеты(пиксели)?
0
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
20.04.2011, 23:30  [ТС] 15
вот немного порыскал в инете нашол код и переделал его в точку.....
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
org 100h
start:      
    mov  AX,11h
    int  10h   
     
    MOV  AH,0CH
    mov  DX, 99    ; Y
  
label_1:      
 
    inc  dx
    int  10h
  
    cmp  dx, 100
    jle  label_1
             ; X=100, Y=200
 
    mov  DX, 100    ; Y
 
 
 
    INT 16h
 
   mov ah, 1  ; Пауза
   int 21h
 
    mov ax,4C00h ; Кончаю программу
    int 21h
 
    ret
как дальше быть??? хелп
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
21.04.2011, 18:00 16
Так пойдёт?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
org 100h
mov  ax,13h
int  10h
 
;очищаем видеобуффер
mov  di,screen
mov  cx,16000
xor  eax,eax
rep  stosd
 
push 0A000h
pop  es
 
;устанавливаем палитру (63 градации зелёного)
mov  cx,127
@@:mov  dx,3C8h
   mov  ax,cx
   out  dx,al
   inc  dx
   xor  al,al
   out  dx,al
   cmp  cx,63
   cmc
   sbb  ax,ax
   or   ax,cx
   out  dx,al
   xor  al,al
   out  dx,al
loop @b
 
fldz
main:fadd    [x]
     fld     st0
     fsincos
     fmul    [aspectratio] ;чтобы получился круг нужно учитывать отношение высоты к ширине (240/320=0.75)
     fxch    st1
 
     ;рисуем линию
     fldz
     fldz
     mov  cx,120
     @@:fadd st0,st2
        fist word[esp-4]
        fxch st1
        fadd st0,st3
        fist word[esp-2]
        fxch st1
        imul di,[esp-2],320
        add  di,[esp-4]
        mov  byte[screen+di+32160],63
        cmp  di,-6304
        jne  skip
         mov  word[screen+di+32160+320],7F7Fh
         mov  dword[screen+di+32160+639],7F7F7F7Fh
         mov  dword[screen+di+32160+959],7F7F7F7Fh
         mov  word[screen+di+32160+1280],7F7Fh
        skip:
    loop @b
 
    fstp st0
    fstp st0
    fstp st0
    fstp st0
 
    ;затухание цвета
    mov  di,63999
    @@:sub  byte[screen+di],1
       adc  byte[screen+di],0
       dec  di
    jne @b
 
    ;ожидание обратного вертикального хода луча
    mov  dx,3DAh
    @@:in   al,dx
       test al,8
    je @b
 
    ;копируем видеобуффер на экран
    mov  si,screen
    xor  di,di
    mov  cx,16000
    rep  movsd
 
    ;если нажат escape - выход
    in   al,60h
    dec  al
jne main
 
ret
x           dd 0.007
aspectratio dd 0.75
screen:
1
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
22.04.2011, 16:06  [ТС] 17
murderer так подойдет!!! огромное спасибо! тему незакрываю, может кому еще захочется написать что-то)))
0
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
29.04.2011, 22:54  [ТС] 18
а если я хочу сделать две точки, то простое задание координат точек приводит к тому что когда линия доходит до точки, то загораются обе точки(((((
помогите сделать так чтоб каждая отдельно загоралась
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
org 100h
mov  ax,13h
int  10h
 
;очищаем видеобуффер
mov  di,screen
mov  cx,16000
xor  eax,eax
rep  stosd
 
push 0A000h
pop  es
 
;устанавливаем палитру (63 градации зелёного)
mov  cx,127
@@:mov  dx,3C8h
   mov  ax,cx
   out  dx,al
   inc  dx
   xor  al,al
   out  dx,al
   cmp  cx,63
   cmc
   sbb  ax,ax
   or   ax,cx
   out  dx,al
   xor  al,al
   out  dx,al
loop @b
 
fldz
main:fadd    [x]
     fld     st0
     fsincos
     fmul    [aspectratio] ;чтобы получился круг нужно учитывать отношение высоты к ширине (240/320=0.75)
     fxch    st1
 
     ;рисуем линию
     fldz
     fldz
     mov  cx,120
     @@:fadd st0,st2
        fist word[esp-4]
        fxch st1
        fadd st0,st3
        fist word[esp-2]
        fxch st1
        imul di,[esp-2],320
        add  di,[esp-4]
        mov  byte[screen+di+32160],63
         
     mov  si,6304
     cmp  di,-6304
        jne  skip
        
     mov  word[screen+di+32160+320],7F7Fh
         mov  dword[screen+di+32160+639],7F7F7F7Fh
         mov  dword[screen+di+32160+959],7F7F7F7Fh
         mov  word[screen+di+32160+1280],7F7Fh
 
;   jne skip        
     mov  word[screen+si+32160+320],7f7Fh
         mov  dword[screen+si+32160+639],7f7F7F7Fh
         mov  dword[screen+si+32160+959],7f7F7F7Fh
         mov  word[screen+si+32160+1280],7f7Fh
        skip:
    loop @b
 
    fstp st0
    fstp st0
    fstp st0
    fstp st0
 
    ;затухание цвета
    mov  di,63999
  @@:sub  byte[screen+di],1
       adc  byte[screen+di],0
       dec  di
  jne @b
 
    ;ожидание обратного вертикального хода луча
    mov  dx,3DAh
    @@:in   al,dx
       test al,8
    je @b
 
    ;копируем видеобуффер на экран
    mov  si,screen
    xor  di,di
    mov  cx,16000
    rep  movsd
 
    ;если нажат escape - выход
    in   al,60h
    dec  al
jne main
 
ret
x           dd 0.007
aspectratio dd 0.75
screen:
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
30.04.2011, 06:31 19
nascar, а почему бы не попросить случайное число точек, причем точки движутся и их видно только когда по ним проходит луч радара? Не останавливайся на достигнутом, проси
0
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 19
04.05.2011, 22:37  [ТС] 20
и все же не получается у меня... может хоть подскажите что ли...
0
04.05.2011, 22:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2011, 22:37
Помогаю со студенческими работами здесь

Схема для подключения потенциометров авиа-штурвала
Здравствуйте! Помогите, пожалуйста, понять, по какой схеме лучше всего выполнить подключение...

Авиа метеосводка Ростов-Метео, 6617 кГц
Каждую 25-ю и 55-ю минуту каждого часа времени, круглосуточно, из г. Ростов происходит...

Посоветуйте радар детектор
Доброго всем. Хочу приобрести себе пассивный радар, Интересует пару пунктов: у кого какие модели...

Анти-радар разве работает?
Доброго времени суток, стал замечать что на многих машинах есть анти радар, но в главной дороги...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru