Главная  Введение в электрику 

[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] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [ 187 ] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211]

ствий для определения необходимости переноса или заема. Нулевой флаг используется для определения наличия нулей во всех разрядах результата или команды. Флаг знака используется для указания знака числа - положительный или отрицательный. Из 8 разрядов этого регистра процессоры Motorola 6800 и Zilog Z80 используют 6 разрядов; процессор Intel 8080А использует 5; процессор MOS Technology 6502 использует 7.

Счетчик команд - это 16-разрядный регистр, содержащий адрес команды, извлеченный из памяти. По мере того как команды выполняются, содержимое счетчика увеличивается на единицу для извлечения адреса следующей команды. Содержимое счетчика команд может только увеличиваться.Однако, последовательность команд может быть изменена с помощью команд ветвления или перехода.

Указатель стека - это 16-разрядный регистр, содержащий адрес ячейки памяти данных, хранящихся в стеке. Стек будет обсуждаться немного позднее.

Большинство микропроцессоров имеют одинаковые наборы основных команд с различными машинными кодами и несколько собственных команд. Основные команды делятся на девять категорий:

1. Перемещение данных.

2. Арифметические.

3. Логические.

4. Сравнение и проверка.

5. Вращение и сдвиг.

6. Управление программой.

7. Стек.

8. Ввод/вывод.

9. Разные.

Команды перемещения данных перемещают данные из одного места в другое внутри микропроцессора и памяти (рис. 36-6). Данные перемещаются сразу по 8 бит в параллельном коде (одновременно) из одного места в другое.



Команды микропроцессора используют символические обозначения, указывающие, как перемещать данные. В микропроцессорах 6800 и 6502 стрелка перемещает слева направо. В микропроцессорах 8080А и Z80 стрелка перемещает справа налево. В любом случае сообщение об операции одинаково. Данные перемещаются от источника к месту назначения.

Описание команды

Мнемоническое обозначение

Обозначение

Источник

Место назначения

Загрузить аккумулятор

М->А

Память

Аккумулятор

Загрузить регистор X

М->Х

Память

Регистр X

Запомнить

содержимое

аккумулятора

А-*М

Аккумулятор

Память

Запомнить содержимое регистра X

Х-*М

Регистр X

Память

Перенести содержимое аккумулятора в регистр X

А->Х

Аккумулятор

Регистр X

Перенести содержимое регистра X в аккумулятор

Х-*А

Регистр X

Аккумулятор

Рис. 36-6. Команды перемещения данных.

Арифметические команды влияют на арифметико-логическое устройство. Наиболее мощными командами являются сложение, вычитание, приращение и уменьшение. Эти команды позволяют микропроцессору проводить вычисления и обрабатывать данные. Они отличают компьютер от произвольной логической цепи. Результат работы этих команд помещается в аккумулятор.

Логические команды - это команды, содержащие один или более Булевых операторов: И, ИЛИ и исключающее ИЛИ. Они работают одновременно с восемью битами в



АЛУ, а результаты работы этих команд помещаются в аккумулятор. Другой логической операцией является команда дополнения. Она включает дополнение до единицы и дополнение до двух. Так как дополнение осуществляется с помощью дополнительной цепи, эта операция содержится не во всех микропроцессорах. Микропроцессоры 6502 не содержат команды дополнения. Микропроцессор 8080А имеет команду дополнения до единицы. Микропроцессоры 6800 и Z80 имеют команды дополнения до единицы и дополнения до двух.

Операции дополнения обеспечивают метод представления чисел со знаками. Дополняющие числа позволяют АЛУ выполнять операции вычитания с помощью цепи сумматора. Следовательно, блок микропроцессора может использовать Одни и те же цепи для сложения и вычитания.

Команды сравнения сравнивают данные в аккумуляторе с данными в ячейке памяти или в дротом регистре. Результат сравнения не хранится в аккумуляторе, но в результате сравнения может измениться флаговый бит. Сравнение может быть выполнено путем наложения (маскирования) или путем поразрядной проверки. Маскирование - это процесс вычитания двух чисел, позволяющий вычитать только определенные разряды. Маска - это заранее определенный набор разрядов, используемых для определения существования некоторых условий внутри микропроцессора. Недостаток процедуры маскирования в том, что она использует команду И и, следовательно, разртпает содержимое аккумулятора. Хотя процедура побитовой проверки также использует команду И, она не разрушает содержимое аккумулятора. Команду побитовой проверки имеют не все микропроцессоры.

Команды вращения и сдвига изменяют данные в регистре или в памяти путем перемещения данных вправо или влево на один разряд. Обе команды используют разряд переноса. Разница между этими командами состоит в том, что команда вращения сохраняет данные, а команда сдвига разрушает их.



[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] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [ 187 ] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211]

0.0013