Организация ЭВМ. Довгий П.С - 16 стр.

UptoLike

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