Составители:
15
Задания:
Совместить перевод 102 и 210 в одной программе.
Сравнить листинги .lst программ в С51 и А51 и пояснить различия в двух
программах.
2.2. Иерархия памяти ЭВМ.
Задана текстовая строка-константа в ASCII в памяти Code, предлагается
преобразование этой строки с сохранением в ASCII в расширенной памяти
данных Xdata. В преобразованиях также используется
память Data, регистры с
адресным доступом.
Пример.
Символьное десятичное число преобразовать в символьное двоичное.
“123” (“01110101“ )
2
Ascii-код десятичной цифры занимает байт – в старшей тетраде
добавляется 0x30.
Десятичное число размещается как символьная константа в программной
памяти Code, преобразуется в шестнадцатеричное во внутренней регистровой
памяти Data и результат записывается во внешнюю память данных Xdata.
Программа в С51
1) Прямая адресация
#include <reg51.h>
char x; //переменная в регистровой памяти данных, имя
переменной подразумевает значение
char code y[ ]= “123”; //символьная константа в программной
памяти
char xdata yy[8]; //результат преобразования в расширенной памяти
main()
{ char i; //переменная в регистровой памяти
x=0;
for (i=0; i<3; i++) ;перевод в двоичную
x=x*10+(y[i]&0x0f);
for(i=7;i>=0; i--) ; преобразование в символы
{ yy[i]= (x&0x01) ? ‘1’ : ‘0’;
x=x>>1;
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »