|
Люди! Выручайте!
Есть контроллер 80с52 и компьютер, которые соединены м/д собой по RS-232. Оператор ЭВМ, в терминале вводит пятизначное десятичное число, которое передается через SBUF в контроллер. Примерно вот так:
cin:
clr A
jnb RI, cin
clr RI
mov A, SBUF
ret
cout:
mov SBUF,A
jnb TI,$
clr TI
ret
acall cin
mov r1,a
acall cin
mov r2,a
…………..
…………..
mov r5,a
Т.е., например, число 45678d в памяти будет раскидано по регистрам в таком порядке:
r1=4d; r2=5d; r3=6d; r4=7d; r5=8d.
Как собрать воедино это число??????? Может можно записать в память, предварительно отведя место. Пробую записать вот так (здесь работа с hex числами. Перевод из одной системы исчисления в другую – отдельный вопрос):
mov dptr,#DBTest
movc A,@A+DPTR
mov @DPTR,#4321h
DBTest: dw 1234h
Но, к сожалению не получается…. В 8086 все ясно… А тут я в замешательстве. Я не могу записать в DBTest. Как это сделать? Т.е. я хочу, число вводимое из терминала, записывать сразу в DBTest.
E-mail: info@telesys.ru