K X=0 E: различия между версиями
SMB (обсуждение | вклад) мНет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Команда косвенного условного перехода '''K x=0 E''' (лат. '''K X=0 E''') «Косвенный переход по условию x=0 по содержимому адресного регистра 0» с кодом EE вызывает переход на адрес, записанный в [[R14|регистре памяти E]], если условие не выполняется (X≠0). Перед выполнением команды содержимое [[R14|регистра E]] модифицируется. | Команда косвенного условного перехода '''K x=0 E''' (лат. '''K X=0 E''') «Косвенный переход по условию x=0 по содержимому адресного регистра 0» с кодом EE вызывает переход на адрес, записанный в [[R14|регистре памяти E]], если условие не выполняется (X≠0). Перед выполнением команды содержимое [[R14|регистра E]] модифицируется. Если записанное в [[RE|регистр E]] число меньше нуля, в [[RE|регистр E]] записывается число нуль. Дробная часть числа, записанного в [[RE|регистр E]], отбрасывается. | ||
Команда условного перехода предназначена для организации ветвлений в программе пользователя. Команда изменяет содержимое [[счётчик адреса|счетчика адреса]] в зависимости от выполнения условия. В качестве условия в ЭВМ используется сравнение содержимого [[RX|регистра X]] с нулём: "x=0". Содержимое [[стек|стека]] не изменяется. | Команда условного перехода предназначена для организации ветвлений в программе пользователя. Команда изменяет содержимое [[счётчик адреса|счетчика адреса]] в зависимости от выполнения условия. В качестве условия в ЭВМ используется сравнение содержимого [[RX|регистра X]] с нулём: "x=0". Содержимое [[стек|стека]] не изменяется. | ||
Строка 6: | Строка 6: | ||
Команда вызывает изменение [[счётчик адреса|счетчика адреса]], если записанное в команде условие не выполняется (X≠0). Если условие выполняется (X=0), то следующей будет исполнена команда, записанная непосредственно за командой условного перехода. | Команда вызывает изменение [[счётчик адреса|счетчика адреса]], если записанное в команде условие не выполняется (X≠0). Если условие выполняется (X=0), то следующей будет исполнена команда, записанная непосредственно за командой условного перехода. | ||
== Модификация RЕ на советских ПМК == | |||
Если в [[RЕ|регистре Е]] содержится число 0, а также числа от 1 до 104, его модификация происходит также, как на современных ЭКВМ — путём отбрасывания дробной части (усечения). | |||
Модификация отрицательных чисел, чисел между 0 до 1, а также больших положительных чисел на советских ПМК не документирована. Поведение ПМК может зависеть от модели, но обычно условный переход происходит по адресу, на который указывают два младших разряда числа в [[RЕ|регистре Е]] после его модификации. | |||
== История == | == История == | ||
Строка 12: | Строка 17: | ||
Эту недокументированную команду [[Б3-34|«Электроники Б3-34»]] обозначали на письме [[K X=0 ↑|Кx=0↑]]. Программы, использующие её, неправильно работали на [[МК-61]] и [[МК-52]]. | Эту недокументированную команду [[Б3-34|«Электроники Б3-34»]] обозначали на письме [[K X=0 ↑|Кx=0↑]]. Программы, использующие её, неправильно работали на [[МК-61]] и [[МК-52]]. | ||
== Ссылки == | |||
{{Документация|mk_d11.htm#p12|Команда K x꞊0 E на сайте НПП «СЕМИКО», п. 12.5}} | |||
{{Косвенные условные переходы}} | {{Косвенные условные переходы}} | ||
[[Category:Все команды]] | [[Category:Все команды]] | ||
[[Category:Команды МК-61]] | [[Category:Команды МК-61]] | ||
[[Category:Косвенные условные переходы]] | [[Category:Косвенные условные переходы]] |
Текущая версия от 16:18, 12 января 2020
Команда косвенного условного перехода K x=0 E (лат. K X=0 E) «Косвенный переход по условию x=0 по содержимому адресного регистра 0» с кодом EE вызывает переход на адрес, записанный в регистре памяти E, если условие не выполняется (X≠0). Перед выполнением команды содержимое регистра E модифицируется. Если записанное в регистр E число меньше нуля, в регистр E записывается число нуль. Дробная часть числа, записанного в регистр E, отбрасывается.
Команда условного перехода предназначена для организации ветвлений в программе пользователя. Команда изменяет содержимое счетчика адреса в зависимости от выполнения условия. В качестве условия в ЭВМ используется сравнение содержимого регистра X с нулём: "x=0". Содержимое стека не изменяется.
Команда условного перехода действуют только в режиме выполнения программы.
Команда вызывает изменение счетчика адреса, если записанное в команде условие не выполняется (X≠0). Если условие выполняется (X=0), то следующей будет исполнена команда, записанная непосредственно за командой условного перехода.
Модификация RЕ на советских ПМК[править]
Если в регистре Е содержится число 0, а также числа от 1 до 104, его модификация происходит также, как на современных ЭКВМ — путём отбрасывания дробной части (усечения).
Модификация отрицательных чисел, чисел между 0 до 1, а также больших положительных чисел на советских ПМК не документирована. Поведение ПМК может зависеть от модели, но обычно условный переход происходит по адресу, на который указывают два младших разряда числа в регистре Е после его модификации.
История[править]
До появления МК-61 (на калькуляторах Б3-34, МК-54 и МК-56) недокументированная команда с кодом EE вела себя аналогично команде Кx=0 0, с единственным исключением — содержимое регистра 0 не уменьшалось при модификации. На МК-152 аналогично себя ведёт двухшаговая команда РКx=0 00 с кодом EF 00.
Эту недокументированную команду «Электроники Б3-34» обозначали на письме Кx=0↑. Программы, использующие её, неправильно работали на МК-61 и МК-52.
Ссылки[править]
Kx≠00 | Kx≠01 | Kx≠02 | Kx≠03 | Kx≠04 | Kx≠05 | Kx≠06 | Kx≠07 | Kx≠08 | Kx≠09 | Kx≠0А | Kx≠0В | Kx≠0С | Kx≠0Д | Kx≠0Е |
Kx≥00 | Kx≥01 | Kx≥02 | Kx≥03 | Kx≥04 | Kx≥05 | Kx≥06 | Kx≥07 | Kx≥08 | Kx≥09 | Kx≥0А | Kx≥0В | Kx≥0С | Kx≥0Д | Kx≥0Е |
Kx<00 | Kx<01 | Kx<02 | Kx<03 | Kx<04 | Kx<05 | Kx<06 | Kx<07 | Kx<08 | Kx<09 | Kx<0А | Kx<0В | Kx<0С | Kx<0Д | Kx<0Е |
Kx=00 | Kx=01 | Kx=02 | Kx=03 | Kx=04 | Kx=05 | Kx=06 | Kx=07 | Kx=08 | Kx=09 | Kx=0А | Kx=0В | Kx=0С | Kx=0Д | Kx=0Е |