Составители:
16
}
while(1); //динамический останов
}
2) Программа на С51 – косвенный доступ через адрес-указатель
#include <reg51.h>
unsigned char x,i; //переменная в Data
char code * y="125"; //указатель на текстовую константу, имя
переменной
обозначает адрес
char xdata * yy; //указатель на текстовую переменную
main()
{
for (i=0; i<3; i++) x=x*10+(*y++&0x0f);
for(i=7;i>=0; i--)
{ *yy++= (x&0x01) ? ‘1’ : ‘0’;
x=x>>1;
}
while(1); //динамический останов
}
Ассемблер
Dseg at 8 ;сегмент данных в Data
X: ds 1
Xseg at 0 ;сегмент данных в Xdata
Yy: ds 8 ;char xdata yy[8]; //результат преобразования во внешней
памяти
Cseg at 0 ;начало программного сегмента, после сброса или включения
питания
Jmp start ;подразумевается команда старта на начало программы
Y: db “123” ;текстовая константа в ASCII-коде
;for (i=0; i<3; i++) - комментарии из программы на С
start: clr a ;подготовка параметров цикла
Mov x,a
Mov r0,#3
Mov DPL,#yy
;ограничимся младшим байтом адреса – старший DPH=0
Cikl: ; x=x*10+(y[i]&0x0f);
Mov a,x
Mov b.#10
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »