Прямая автоинкрементная адресация (№2)
Правило: содержимое регистра, указанного в команде, используется как адрес операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. После извлечения операнда содержимое регистра увеличивается на 2 для словных команд и на 1 для байтных команд. Но если байтовая команда работает с R6 или с R7, то их содержимое всегда увеличивается на 2.
Автоинкрементный метод адресации используется при автоматическом обращении с заданным шагом к последовательным элементам таблицы операндов. Содержимое выбранного регистра автоматически увеличивается для возможности обращения в дальнейшем к последующей ячейке. При байтовых операциях увеличение происходит на единицу, при операциях с полными словами – на 2, а содержимое R6, R7 всегда увеличивается на 2.
Автоинкрементный метод адресации особенно удобен при операциях с массивами и стеками. С помощью этого метода можно выбрать элемент таблицы, а затем увеличить указатель для обращения к следующему операнду в таблице. Хотя этот метод наиболее удобен при работе с таблицами, он может быть использован как общий метод для различных целей.
Примеры автоинкрементной адресации:
Символическое обозначение | Восьмеричный код | Наименование команды | |
1. CLR (R5)+ | Очистка | ||
Действие: Содержимое ячейки, адрес которой содержится в R5, очищается, после чего адрес (содержимое R5) увеличивается на 2. | |||
До выполнения операции | После выполнения операции | ||
20000) 005025 | 20000) 005025 | ||
R5) 030000 | R5) 030002 | ||
30000) 111116 | 30000) 000000 | ||
2. CLR B (R5)+ | Очистка байта | ||
Действие: Очищается выбранный байт, адрес которого содержится в R5, после чего адрес (содержимое R5) увеличивается на единицу. | |||
До выполнения операции | После выполнения операции: | ||
20000) 105025 R5) 030000 | 20000) 105025 R5) 030001 | ||
30000) 111616 | 30000) 111400 | ||
3. ADD (R2)+,R4 | Сложение | ||
Действие: Операнд, адрес которого содержится в R2, складывается с содержимым R4. Результат заносится в R4, а содержимое R2 (адрес операнда источника) увеличивается на 2. | |||
До выполнения операции: | После выполнения операции: | ||
100) 062204 R2) 000204 | 100) 062204 R2) 000206 | ||
R4) 001000 | R4) 003000 | ||
204) 002000 | 204) 002000 | ||
Прямая автодекрементная адресация (№4)
Правило: содержимое регистра, указанного в команде, вначале уменьшается на 2 для словных команд и на 1 для байтных команд и затем используется как адрес операнда. Операнд извлекается, обрабатывается и возвращается по старому адресу. Но если байтовая (байтная) команда работает с R6 или с R7, то их содержимое всегда уменьшается на 2.
Автодекрементный метод адресации также используется для обработки табулированных данных. Однако, в отличие от автоинкрементного метода, адресация к ячейкам массива идет в противоположном направлении. При этом методе адресации содержимое выбранного РОН уменьшается (для байтовых команд на единицу, для команд с полными словами на 2), а затем используется как исполнительный адрес.
Сочетание автоинкрементного и автодекрементного методов адресации может быть эффективно использовано для обработки стека.
Примеры автодекрементной адресации:
Символическое обозначение | Восьмеричный код | Наименование команды | |
1. INC -(R0) | Прибавление единицы | ||
Действие: Содержимое R0 уменьшается на два и используется как исполнительный адрес. К содержимому, выбранному из ячейки по этому адресу, прибавляется единица. | |||
До выполнения операции | После выполнения операции: | ||
100) 005240 R0) 017776 | 100) 005240 R0) 017774 | ||
17774) 000000 | 17774) 000001 | ||
2. INC В -(R0) | Прибавление единицы к байту | ||
Действие: Содержимое R0 уменьшается на единицу и используется как адрес операнда. К выбранному байту прибавляется единица. | |||
До выполнения операции | После выполнения операции: | ||
100) 105240 R0) 017776 | 100) 105240 R0) 017775 | ||
17774) 000000 | 17774) 000400 | ||
3. ADD -(R3), R0 | Сложение | ||
Действие: Содержимое R3 уменьшается на два и используется как адрес операнда источника, который складывается с содержимым R0 (операнд приемника). Результат записывается в R0. | |||
До выполнения операции: | После выполнения операции: | ||
120) 064300 R0) 000020 | 120) 064300 R0) 000070 | ||
R3) 001776 | R3) 001774 | ||
1774) 000050 | 1774) 000050 | ||
Дата добавления: 2016-03-10; просмотров: 1162;