КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Команды пересылки данных микроконтроллера 8051.
Эта группа представлена 28 командами, их краткое описание приведено в таблице, где также указаны тип команды (Т) в соответствии с таблицей, ее длина в байтах (Б) и время выполнения в машинных циклах (Ц).
Таблица.7.Команды передачи данных
Название команды
| Мнемокод
| КОП
| Т
| Б
| Ц
| Операция
| Пересылка в аккумулятор из регистра (n=0÷7)
| MOV A, Rn
| 11101rrr
| 182. 1
| 183. 1
| 184. 1
| (A) (Rn)
| Пересылка в аккумулятор прямоадресуемого байта
| MOV A, ad
|
| 185. 3
| 186. 2
| 187. 1
| (A) (ad)
| Пересылка в аккумулятор байта из РПД (i=0,1)
| MOV A, @Ri
| 1110011i
| 188. 1
| 189. 1
| 190. 1
| (A) ((Ri))
| Загрузка в аккумулятор константы
| MOV A, #d
|
| 191. 2
| 192. 2
| 193. 1
| (A) #d
| Пересылка в регистр из аккумулятора
| MOV Rn, A
| 11111rrr
| 194. 1
| 195. 1
| 196. 1
| (Rn) (A)
| Пересылка в регистр прямоадресуемого байта
| MOV Rn, ad
| 10101rrr
| 197. 3
| 198. 2
| 199. 2
| (Rn) (ad)
| Загрузка в регистр константы
| MOV Rn, #d
| 01111rrr
| 200. 2
| 201. 2
| 202. 1
| (Rn) #d
| Пересылка по прямому адресу аккумулятора
| MOV ad, A
|
| 203. 3
| 204. 2
| 205. 1
| (ad) (A)
| Пересылка по прямому адресу регистра
| MOV ad, Rn
| 10001rrr
| 206. 3
| 207. 2
| 208. 2
| (ad) (Rn)
| Пересылка прямоадресуемого байта по прямому адресу
| MOV add, ads
|
| 209. 9
| 210. 3
| 211. 2
| (add) (ads)
| Пересылка байта из РПД по прямому адресу
| MOV ad, @Ri
| 1000011i
| 212. 3
| 213. 2
| 214. 2
| (ad) ((Ri))
| Пересылка по прямому адресу константы
| MOV ad, #d
|
| 215. 7
| 216. 3
| 217. 2
| (ad) #d
| Пересылка в РПД из аккумулятора
| MOV @Ri, A
| 1111011i
| 218. 1
| 219. 1
| 220. 1
| ((Ri)) (A)
| Пересылка в РПД прямоадресуемого байта
| MOV @Ri, ad
| 0110011i
| 221. 3
| 222. 2
| 223. 2
| ((Ri)) (ad)
| Пересылка в РПД константы
| MOV @Ri, #d
| 0111011i
| 224. 2
| 225. 2
| 226. 1
| ((Ri)) #d
| Загрузка указателя данных
| MOV DPTR, #d16
|
| 227. 13
| 228. 3
| 229. 2
| (DPTR) #d16
| Пересылка в аккумулятор байта из ПП
| MOVC A, @A+DPTR
|
| 230. 1
| 231. 1
| 232. 2
| ((A) +(DPTR))
| Пересылка в аккумулятор байта из ПП
| MOVC A, @A+PC
|
| 233. 1
| 234. 1
| 235. 2
| (PC) (PC)+1,
(A) ((A)+(PC))
| Название команды
| Мнемокод
| КОП
| Т
| Б
| Ц
| Операция
| Пересылка в аккумулятор байта из ВПД
| MOVX A, @Ri
| 1110001i
| 236. 1
| 237. 1
| 238. 2
| (A) ((Ri))
| Пересылка в аккумулятор байта из расширенной ВПД
| MOVX A,@DPTR
|
| 239. 1
| 240. 1
| 241. 2
| (A) ((DPTR))
| Пересылка в ВПД из аккумулятора
| MOVX @Ri, A
| 1111001i
| 242. 1
| 243. 1
| 244. 2
| ((Ri)) (A)
| Пересылка в расширенную ВПД из аккумулятора
| MOVX @DPTR,A
|
| 245. 1
| 246. 1
| 247. 2
| ((DPTR)) (A)
| Загрузка в стек
| PUSH ad
|
| 248. 3
| 249. 2
| 250. 2
| (SP) (SP) + 1, ((SP)) (ad)
| Извлечение из стека
| POP ad
|
| 251. 3
| 252. 2
| 253. 2
| (ad) (SP),
(SP) (SP) - 1
| Обмен аккумулятора с регистром
| XCH A, Rn
| 11001rrr
| 254. 1
| 255. 1
| 256. 1
| (A) ↔ (Rn)
| Обмен аккумулятора с прямоадресуемым байтом
| XCH A, ad
|
| 257. 3
| 258. 2
| 259. 1
| (A) ↔ (ad)
| Обмен аккумулятора с байтом из РПД
| XCH A, @Ri
| 1100011i
| 260. 1
| 261. 1
| 262. 1
| (A) ↔ ((Ri))
| Обмен младших тетрад аккумулятора и байта РПД
| XCHD A, @Ri
| 1101011i
| 263. 1
| 264. 1
| 265. 1
| (A0…3) ↔((Ri)0…3)
|
По команде MOV выполняется пересылка данных из второго операнда в первый. Эта команда не имеет доступа ни к внешней памяти данных, ни к памяти программ. Для этих целей предназначены команды M0VX и MOVC соответственно. Первая из них обеспечивает чтение/запись байт из внешней памяти данных, вторая – чтение байт из памяти программ.
По команде XCH выполняется обмен байтами между аккумулятором и ячейкой РПД, а по команде XCHD – обмен младшими тетрадами (битами 0 – 3).
Группа команд пересылок микроконтроллера имеет следующую особенность - в ней нет специальных команд для работы со специальными регистрами: PSW, таймером, портами ввода-вывода Например, чтение PSW в аккумулятор может быть выполнено командой
MOV A, PSW
которая преобразуется Ассемблером к виду
MOV А, 0D0h (E5 D0),
где Е5 – код операции, а D0 – операнд (адрес PSW).
Кроме того, следует отметить, что в микро-ЭВМ аккумулятор имеет два различных имени в зависимости от способа адресации: А – при неявной адресации (например, MOV A, R0) и АСС – при использовании прямого адреса. Первый способ предпочтительнее, однако, не всегда применим.
|