|
Главная -> Появление первого микропроцессора 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 [105] 106 107 108 109 110 111 112 113 114 115 116 Табл. пе. Определитель
2. ТАБЛИЦЫ ЭКВИВАЛЕНТНЬЕХ ШЕСТНАДЦАТЕРИЧНО-ДЕСЯТИЧНЫХ ЗНАЧЕНИИ ЧИСЛОВЬЕХ ДАННЫХ В табл. П.7 приведены шестнадцатеричные и десятичные значения однобайтных данных при представлении беззнаковых двоичных чисел и чисел в дополнительном коде (Н - старший, L - младший полубайты байта). Эта таблица удобна для быстрой интерпретации значения байта при написании и отладке программ. Табл. П.8, П. 9 необходимы для преобразования шестнадцатеричных и десятичных значений целых многобайтных чисел. Эти таблицы облегчают задачу тестирования числовых программ над полем конкретных данных. 3. ЯЗЬЕК МАКРОАССЕМБЛЕРА Языки ассемблера и макроассемблера относятся к машинно-ориентированным языкам программирования низкого уровня. Эти языки специфичны для каждого типа микропроцессора, так как основаны на машинной системе команд, и, кроме того, связаны с используемой программой-ассемблером, т. е. транслятором с языка ассемблера в машинные коды. Так, программы, представленные в гл. 1-4 книги, написаны на макроассемблере (без использования микросредств) микроэвм «Электроника К1-10», а в гл. 5, 6 - на макроассемблере (с использованием макросредств) ДОС СМ 1800. Поскольку обе эти машины построены на базе микропроцессора серии КР580, их языки макроассемблера близки, но тем не менее имеют и некоторые различия. команд no объектному коду
MOV c,B MOV E,B MOV L.B MOV A,B ADC В SBB в XRA В CMP В RZ RC RPE RM MOV CC MOV E,C MOV L.C MOV A,C ADC с SBB с XRA с CMP с PCHL SPHL MOV CD MOV C.E MOV E,D MOV E.E MOV L.D MOV L.E MOV A.D MOV A.E ADC D ADC E SBB D SBB E XRA D XRA E CMP D CMP E JZ - (82. 83) JC IN (B2. 83) (B2) JPE XCHG (82. 83) (B2. 83) MOV C.H MOV E.H MOV L.H MOV A.H ADC H SBB H XRA H CMP H (82. 83) CC (B2, B3) CPE (82. 83) CM (82. B3) MOV C.L MOV E.L MOV L.L MOV A.L ADC L SBB L XRA L CMP L CALL (82, 83) MOV C,M MOV E.M MOV L.M MOV A.M ADC M SBB M XRA M CMP M ACI (82) SBI RST 3 (B2) MOV C.a MOV E,a MOV L,a MOV A,a ADC A SBB A XRA A CMP a RST I XRI (82) CPI (B2) RST 5 RST 7 Кратко опишем те языковые средства, которые являются одинаковыми (или почти одинаковыми) для обоих указанных языков ассемблера и использованы в приведенных программах. Программа представляет собой последовательность предложений языка ассемблера - строк, ограниченных символом ВК. Возможны четыре типа предложений: 1) пустое предложение (содержит один символ ВК, улучшает восприятие исходного текста программы); 2) предложение машинной команды; 3) предложение вспомогательной команды языка (псевдокоманды); 4) предложение макрокоманды. Часто предложения второго и третьего типов называют операторами языка ассемблера. В общем случае предложение на языке ассемблера содержит 4 поля и имеет следующий вид: НАЗВАНИЕ ОПЕРАЦИЯ ОПЕРАНДЫ ;КОММЕНТАРИЙ (ВК) В конкретном предложении каждое из указанных полей может быть пустым. Если все поля пусты, то и предложение будет пустым. Поля предложения ограничиваются разделителями, которые могут быть дополнены произвольным количеством пробелов (говорят, что предложение записывается в свободном формате). В качестве разделителей применяются следующие знаки: пробел (разделяет поля), запятая (разделяет операнды в поле операндов), двоеточие (завершает имена, используемые в качестве меток), точка с запятой (открывает поле комментариев), апострофы (ограничивают строку символов) и скобки (ограничивают выражение). Содержимое полей предложений исходной программы записывается Табл. П.7. Определитель шестнадцатеричных и десятичных значений байта
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 [105] 106 107 108 109 110 111 112 113 114 115 116 0.0091 |
|