|
|
  |
Проясните конструкцию, Прошу помощи у форума. |
|
|
|
Jul 20 2009, 22:39
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Несколько раз пользовался документами фирмы TI. Обычно они радуют своей лаконичностью и "ненавороченностью". Обычно вопросов не возникало. Сам я с MSP430 не работал и пока не планирую. Сейчас при изучении с документом slaa037 возникли проблемы. Сама теория описана весьма скудно. Пытаюсь разобраться "по программе". И тут возникли проблемы. С одним участком возникли проблемы. Приведу выдержки: Код ************************************************** * Running this filter takes 113 cycles ************************************************** ;***************************************************** ; New simpler filter at following specification ; Freq_Stop: 2.5KHz, Attenuation_Stop: 40dB ; Freq_Pass: 1.4KHz, Attenuation_Pass: 1dB ; Order of filter = 5 ;***************************************************** filters: bis #INTERRUPT_TOGGLE,global_status mov #WDF_PARMS,mem_ptr .word 4f16h .word 0000h .word 498fh .word 0000h .word 4f17h .word 0008h .word 8607h .word 4708h .word 1108h .word 4806h .word 1108h .word 1108h .word 1108h .word 1108h .word 1108h .word 8806h .word 8f16h .word 0008h .word 4f9fh .word 0006h .word 0008h .word 468fh .word 0006h .word 8706h .word 4f17h .word 0004h .word 8907h .word 4708h .word 1108h .word 1108h .word 1108h .word 4809h .word 1108h .word 1108h .word 1108h .word 8809h .word 5f19h .word 0004h .word 8907h .word 4f9fh .word 0002h .word 0004h .word 478fh .word 0002h .word 8906h mov R6,bit_data ;************************************************************** ; Low pass filter output stored in R6 ; R6 get turned into a analogue value after some hard limiting ;************************************************************** add #80h,R6 tst R6 jge non_negative mov #0,R6 non_negative cmp #0ffh,R6 jlo non_ceiling mov #0ffh,R6 non_ceiling mov.b R6,&P0OUT exit_D_A reti Предполагаю что это таблица идущая по тексту программы. Но не вижу к ней обращения. Короче одни вопросы. Поясните пожалуйста, что автор здесь делает?
|
|
|
|
|
Jul 21 2009, 00:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
это тоже код, деассемблировал вручную начало: Код .word 4f16h mov 0(R15),R6 .word 0000h .word 498fh mov R9,0(R15) .word 0000h .word 4f17h mov 8(R15),R7 .word 0008h .word 8607h sub R6,R7 .word 4708h mov R7,R8 .word 1108h rra R8
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Jul 21 2009, 06:09
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(SasaVitebsk @ Jul 21 2009, 10:03)  Может кто поможет с дизасемблированием? Не хочется из-за этого спец пакет ставить, а в ручную замучиешься. online asm/disasmВот первые 2 слова: Цитата Disassembling the following words: 0x4f16 0x0000 Results in the following assembler instruction: mov 0(R15), R6 (3 cycles, 2 words) Правда, таскать туда-сюда тоже неудобно.. Зато просто и не надо ничего ставить
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jul 21 2009, 07:53
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Не, фигня какая-то. Ну не будут в апноте прятать код таким нелепым образом. "Зачем тогда аппнот писать" (с)SasaVitebsk. Подозреваю, что чтение находится где-то еще. Счас гляну. Цитата(Сергей Борщ @ Jul 21 2009, 10:28)  Ну не будут в апноте прятать код таким нелепым образом. Таки спрятали. Редиски. Код 00003136 <filters>: .global filters filters:
mov #0x200,r15 3136: 3f 40 00 02 mov #512, r15;#0x0200 313a: 16 4f 00 00 mov 0(r15), r6;0x0000(r15) 313e: 8f 49 00 00 mov r9, 0(r15);0x0000(r15) 3142: 17 4f 08 00 mov 8(r15), r7;0x0008(r15) 3146: 07 86 sub r6, r7 3148: 08 47 mov r7, r8 314a: 08 11 rra r8 314c: 06 48 mov r8, r6 314e: 08 11 rra r8 3150: 08 11 rra r8 3152: 08 11 rra r8 3154: 08 11 rra r8 3156: 08 11 rra r8 3158: 06 88 sub r8, r6 315a: 16 8f 08 00 sub 8(r15), r6;0x0008(r15) 315e: 9f 4f 06 00 mov 6(r15), 8(r15);0x0006(r15), 0x0008(r15) 3162: 08 00 3164: 8f 46 06 00 mov r6, 6(r15);0x0006(r15) 3168: 06 87 sub r7, r6 316a: 17 4f 04 00 mov 4(r15), r7;0x0004(r15) 316e: 07 89 sub r9, r7 3170: 08 47 mov r7, r8 3172: 08 11 rra r8 3174: 08 11 rra r8 3176: 08 11 rra r8 3178: 09 48 mov r8, r9 317a: 08 11 rra r8 317c: 08 11 rra r8 317e: 08 11 rra r8 3180: 09 88 sub r8, r9 3182: 19 5f 04 00 add 4(r15), r9;0x0004(r15) 3186: 07 89 sub r9, r7 3188: 9f 4f 02 00 mov 2(r15), 4(r15);0x0002(r15), 0x0004(r15) 318c: 04 00 318e: 8f 47 02 00 mov r7, 2(r15);0x0002(r15) 3192: 06 89 sub r9, r6
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|