forked from forth32/qtools
-
Notifications
You must be signed in to change notification settings - Fork 1
/
iormem.asm
29 lines (25 loc) · 1.24 KB
/
iormem.asm
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
@ Апплет чтения данных из памяти модема через команду 11
@
@ На входе:
@ R0 = адрес начала данного кода (точки start)
@ R1 = адрес ответного буфера
@
@
.org 0
.byte 0,0 @ выравнивающие байты - отрезаются от объектного модуля
.byte 0x11,0 @ код команды 11 и выравнивающий байт - это остается в объектном модуле
start:
LDR R3,srcadr @ R3 = адрес читаемых данных в памяти модема
LDR R4,lenadr @ R4 = размер записываемых данных в байтах
MOV R0,#0x12 @ код ответа
STR R0,[R1],#4 @ сохраняем его в ответный буфер
ADD R0,R3,R4 @ R0 = адрес конца блока данных
locloop:
LDR R2,[R3],#4
STR R2,[R1],#4
CMP R3,R0
BCC locloop
ADD R4,#4 @ размер ответа - 4 байта кода и данные
BX LR
srcadr:.word 0
lenadr:.word 0