Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: Great Cow BASIC

Сб ноя 17, 2018 20:10:14

Господа! Вот Вы грустное зрелище тут устроили,две страницы.....

Re: Great Cow BASIC

Сб ноя 17, 2018 20:48:44

КРАМ, стоит ли отвлекаться на индивидума, именно здесь ты мечешь бисер перед свиньями.
Мурик, это "птенец гнезда" пастера, а его "ученье" не пропьешь не высерешь.

Нарушение правил форума. п 2-3. Fakir. предупреждение.

Re: Great Cow BASIC

Сб ноя 17, 2018 21:46:13

Скачал,поставил,опробовал,большое спасибо!буду изучать

Не нашел-там только пиккит поддерживается?мне для авр надо усбасп...

Re: Great Cow BASIC

Вс ноя 18, 2018 02:19:56

dosikus!
Не то пальто. Никаких асмовских вставок. Токмо Си.

Re: Great Cow BASIC

Вс ноя 18, 2018 07:21:04

пиккит поддерживается?

Поддерживается, PicKit 2 и 3

Included programmer software is :
— Avrdude for AVR,
 — PICPgm for PIC,
 — PicKit2 and PicKit3
 — TinyBootLoader+
 — Microchip Xpress Board and many, many more
Последний раз редактировалось atc Вс ноя 18, 2018 12:59:29, всего редактировалось 1 раз.

Re: Great Cow BASIC

Вс ноя 18, 2018 13:36:14

dosikus!
Не то пальто. Никаких асмовских вставок. Токмо Си.

Ну где эти вставки?
Укажите, будьте любезны. :)))

Re: Great Cow BASIC

Пн ноя 19, 2018 00:45:30

Ну вот:
70: void interrupt tc_int(void) :Это вроде Си
0004 00DE MOVWF 0x5E: Отсель и далее асм
0005 0E03 SWAPF STATUS, W
0006 1283 BCF STATUS, 0x5
0007 00A2 MOVWF 0x22
0008 080A MOVF PCLATH, W
0009 00A3 MOVWF 0x23
000A 2822 GOTO 0x22
000B 280C GOTO 0xC
71: {

Re: Great Cow BASIC

Пн ноя 19, 2018 03:54:25

Караул, какой ...
Это всего лишь дизасм строки Си.
Сохранение контекста.
А еще шляпу надел. (с)

Re: Great Cow BASIC

Пн ноя 19, 2018 06:16:15

Оба хороши, это просто листинг во что скомпилировался Си- код. Какой на асм/дизасм?

Re: Great Cow BASIC

Пн ноя 19, 2018 06:24:28

VladislavS, внимательней предыдущюю страницу изучи.

Смотрим промежуточные асмовские файлы и охереваем с сишных наворотов


Этого же и хотел вопрошающий, ему и было вывалено:
Исходник и листинг асмЪ.


Ждем охреневания...

koms48, вы разницу между исходником и листингом осознаете?

Re: Great Cow BASIC

Пн ноя 19, 2018 08:28:49

это просто листинг

Осталось узнать КАК НАЗЫВАЕТСЯ в IDE этот "просто листинг"...
:))) :))) :)))

Re: Great Cow BASIC

Пн ноя 19, 2018 08:36:08

Я ему подскажу картинкой...

Изображение

Re: Great Cow BASIC

Пн ноя 19, 2018 08:48:55

Чиорт побьери!!! А я только што такой же скрин приготовил...
:))) :))) :)))

Re: Great Cow BASIC

Пн ноя 19, 2018 09:08:25

Это козни индусских программеров. Дизассемблер это когда берут двоичный файл и из него восстанавливают ассемблерный код.
То что вы показываете это обычный листинг (ассемблерный листинг). В нормальных IDE это так называется.

Keil
Изображение
asm_list3.png
(23.35 KiB) Скачиваний: 1136

Iar
Изображение
asm_list.png
(95.43 KiB) Скачиваний: 1104

Visual Studio
Изображение
asm2.png
(26.7 KiB) Скачиваний: 1109

Eclipse
Изображение
asm_list2.png
(54.11 KiB) Скачиваний: 1138

и т.д. и т.п.

Re: Great Cow BASIC

Пн ноя 19, 2018 09:19:59

В нормальных IDE это так называется.


Ну вот такая нелегкая жЫсть у пЫководов.
А некоторые это асмЪ вставками называют...

VladislavS, и счас спугнешь koms48 и мы так и не увидим мастеркласс на ковбойском барсике...

Re: Great Cow BASIC

Пн ноя 19, 2018 09:41:38

Это козни индусских программеров. Дизассемблер это когда берут двоичный файл и из него восстанавливают ассемблерный код.

Существительное disassembly - на пиндосском означает РАЗБОРКА. И ничего более. :P
У Микрочипа это означает РАЗБОРКА кода Си на Ассемблере.
:))) :))) :)))
Индусы тут не причем... :tea:
И дизассемблер (disassembler), как утилита восстановления АСМ кода из бинарника или хекса, никакого отношения к данному случаю не имеет.

Re: Great Cow BASIC

Вт ноя 20, 2018 07:54:15

Весьма жаль что мы так и не услышали начальника транспортного отдела ...

Но зато мы можем сами охреневать от выхлопа "бесподобного " протона:

Листинг ( пришлось урезать ибо протон всосал в него всякую свою хрень)

Код:
proton#code#start
    org 0
    goto proton#main#start
    org 4
    movwf WSAVE
    movf STATUS,W
    clrf STATUS
    movwf SSAVE
    movf FSR,W
    movwf FSRSAVE
    goto ISR_Handler
proton#main#start
    clrf STATUS
F1_SOF equ $ ; TUTORIAL1.BAS
F1_000044 equ $ ; IN [TUTORIAL1.BAS] GOTO MAIN
    goto MAIN
ISR_Handler
ram_bank = 0
F1_000046 equ $ ; IN [TUTORIAL1.BAS] CONTEXT SAVE
    movf PP7,W
    movwf _High__Context_Store#0
    movf PP7H,W
    movwf _High__Context_Store#1
F1_000047 equ $ ; IN [TUTORIAL1.BAS] IF INTCON.2 = 1 THEN
    btfss INTCON,2
    goto _LBL__3
F1_000048 equ $ ; IN [TUTORIAL1.BAS] INTCON.2 = 0
    bcf INTCON,2
F1_000049 equ $ ; IN [TUTORIAL1.BAS] TICK_COUNT=TICK_COUNT+1
    incf tick_count,F
    btfsc STATUS,2
    incf tick_countH,F
F1_000050 equ $ ; IN [TUTORIAL1.BAS] GPIO=GPIO^(0X01  |0X02  )
    clrf PP7H
    movlw 3
    movwf PP7
    movf PP7,W
    xorwf GPIO,F
F1_000051 equ $ ; IN [TUTORIAL1.BAS] ENDIF
_LBL__3
F1_000052 equ $ ; IN [TUTORIAL1.BAS] CONTEXT RESTORE
    movf _High__Context_Store#0,W
    movwf PP7
    movf _High__Context_Store#1,W
    movwf PP7H
    movf FSRSAVE,W
    movwf FSR
    movf SSAVE,W
    movwf STATUS
    swapf WSAVE,F
    swapf WSAVE,W
    retfie
MAIN
F1_000057 equ $ ; IN [TUTORIAL1.BAS] OPTION_REG =OPTION_REG&( ~(0X20  |0X07 ))
    clrf PP7H
    movlw 39
    movwf PP7
    comf PP7,F
    comf PP7H,F
    movf PP7,W
    bsf STATUS,5
ram_bank = 1
    andwf OPTION_REG,F
F1_000058 equ $ ; IN [TUTORIAL1.BAS] TRISIO =TRISIO  & (~(0X01  |0X02  ))
    bcf STATUS,5
ram_bank = 0
    clrf PP7H
    movlw 3
    movwf PP7
    comf PP7,F
    comf PP7H,F
    movf PP7,W
    bsf STATUS,5
ram_bank = 1
    andwf TRISIO,F
F1_000059 equ $ ; IN [TUTORIAL1.BAS] ANSEL=0
    clrf ANSEL
F1_000060 equ $ ; IN [TUTORIAL1.BAS] INTCON = INTCON |(0X20 |0X80 )
    bcf STATUS,5
ram_bank = 0
    clrf PP7H
    movlw 160
    movwf PP7
    movf PP7,W
    iorwf INTCON,F
F1_000061 equ $ ; IN [TUTORIAL1.BAS] CMCON =0X07
    movlw 7
    movwf CMCON
F1_000062 equ $ ; IN [TUTORIAL1.BAS] GPIO = 0X01
    movlw 1
    movwf GPIO
LOOP
F1_000063 equ $ ; IN [TUTORIAL1.BAS] LOOP: GOTO LOOP
    goto LOOP
F1_EOF equ $ ; TUTORIAL1.BAS
_PBLB__4
    goto _PBLB__4
__EOF
__config XT_OSC & WDT_OFF & PWRTE_ON & CP_OFF & MCLRE_ON
    end


Исходник , максимально приведен к Сишному...
Код:
Device=12F675
$define INTCON_T0IE 0x20
$define INTCON_GIE  0x80
$define INTCON_T0IF 0x04
$define INTCON_PEIE 0x40

$define OPTION_GPPU   0x80
$define OPTION_INTDEG 0x40
$define OPTION_T0CS   0x20
$define OPTION_T0SE   0x10
$define OPTION_PSA    0x08
$define OPTION_PS0    0x04
$define OPTION_PS1    0x02
$define OPTION_PS2    0x01

$define TMR0_PSC      0x07

$define ALL_DIGIT     0x07

$define GPIO_0        0x01
$define GPIO_1        0x02
$define GPIO_2        0x04
$define GPIO_3        0x08
$define GPIO_4        0x10
$define GPIO_5        0x20
$define GPIO_6        0x40
$define GPIO_7        0x80

$define TRIS_0       0x01
$define TRIS_1       0x02
$define TRIS_2       0x04
$define TRIS_3       0x08
$define TRIS_4       0x10
$define TRIS_5       0x20
$define TRIS_6       0x40
$define TRIS_7       0x80


Dim tick_count As Word

$define LED   GPIO_0
$define LED1  GPIO_1
On_Hardware_Interrupt   GoTo  ISR_Handler
GoTo MAIN
ISR_Handler:
Context Save  ' Save any variables or SFRs used
If INTCONbits_T0IF = 1 Then ' Is it Timer0 that caused the interrupt?
 INTCONbits_T0IF = 0  ' Clear the Timer0 overflow flag
 tick_count=tick_count+1
 GPIO=GPIO^(LED|LED1)
EndIf
Context Restore ' Restore any variables or SFRs used and exit



MAIN:
    OPTION_REG =OPTION_REG&( ~(OPTION_T0CS |TMR0_PSC))
    TRISIO =TRISIO  & (~(LED|LED1))
    ANSEL=0;
    INTCON = INTCON |(INTCON_T0IE|INTCON_GIE)   
    CMCON =ALL_DIGIT
    GPIO = LED
LOOP: GoTo LOOP


И я еще не уверен что эта протоновская хрень вообще будет работать...
Ну и о главном...
xc8


Memory Summary:
Program space used 2Bh ( 43) of 400h words ( 4.2%)
Data space used 6h ( 6) of 40h bytes ( 9.4%)
EEPROM space used 0h ( 0) of 80h bytes ( 0.0%)
Data stack space used 0h ( 0) of 3Ah bytes ( 0.0%)
Configuration bits used 1h ( 1) of 1h word (100.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)


Протон


Изображение

Re: Great Cow BASIC

Пт ноя 23, 2018 09:26:26

Blink675.hex
(325 байт) Скачиваний: 510
Blink675.hex
(325 байт) Скачиваний: 510
Некогда было. Вот исходник протона (мыргалка на 100 mS):
Config MCLREOFF
Device = 12F675
Declare Xtal = 4
TRISIO = 0

m1:
PORTB.0 = 1
DelayMS 100
PORTB.0 = 0
DelayMS 100
GoTo m1

51 ячейка в bin-виде.
Вот рабочий hex добавлю

Но прошу заметить, ни одной асмы, кроме goto, но они в любом языке встречаемы.
Попрошу на Сях тоже предоставить. Исходник и длину бина.
Ноне с коровой бодаюсь (по мере времени). Попожжа коровью мыргалку рожу.

Re: Great Cow BASIC

Пт ноя 23, 2018 09:47:04

Ранее я все сказал. Это не сравнение языков. Это сравнение реализаций функций задержки.
Если учесть, что сами эти функции могут быть написаны даже на АСМе (в смысле присутствовать в библиотеке как обжект-файлы), то подобные тесты совершенно бепонтовы от слова совсем.

Re: Great Cow BASIC

Пт ноя 23, 2018 09:54:32

а если функция задержки - часть языка?
что вообще от языка останется, если считать любые его "родные" функции не подлежащими сравнению?
и в конечном итоге каждый компилятор порождает именно машинный код, т.е. "пишет на асме" то же самое. ну или не пишет, а компонует из заранее написанных кусочков, причем заранее написанных именно на асме.
Ответить