Цитата(marcinio @ Dec 15 2007, 23:50)

Задание примерно такое:
1<n<10000, 1<x<10000, n,x - целое число
надо узнать значения 1/n и x/n, n будет инкрементироваться каждую 0,001с, х выщитает программа
Как мне етого добиться с Atmega8535?

Для начала нужно решить, сколько знаков после запятой хочется получить. Например 4, тогда делить нужно 10000/n, результат будет от 1 до 10000, думаю дальше понятно что с ним делать.
Используем двубайтное число (unsigned int).
А готовый асемблеровский код можно легко получить если посмотреть откопиленный код с помощью CodeVison. Вот что у меня получилось
(код на C:
unsigned int a,b;
...
a=432;
b=10000/a; )
Код
main:
;......
; a=432 (a хранится в регистрах R4,R5)
LDI R30,LOW(432)
LDI R31,HIGH(432)
MOVW R4,R30
;b=10000/a (b хранится в регистрах R6,R7)
MOVW R30,R4
LDI R26,LOW(10000)
LDI R27,HIGH(10000)
RCALL __DIVW21U
MOVW R6,R30
; ......
rjmp main
__DIVW21U:
CLR R0
CLR R1
LDI R25,16
__DIVW21U1:
LSL R26
ROL R27
ROL R0
ROL R1
SUB R0,R30
SBC R1,R31
BRCC __DIVW21U2
ADD R0,R30
ADC R1,R31
RJMP __DIVW21U3
__DIVW21U2:
SBR R26,1
__DIVW21U3:
DEC R25
BRNE __DIVW21U1
MOVW R30,R26
MOVW R26,R0
RET