Формат инструкций CLI в IBM 360

У меня есть инструкция CLI =F'3',3 Я хочу знать, будет ли она сравнивать значение 3 с содержимым регистра 3 или будет сравнивать значение 3 с другим значением '3'. пожалуйста, помогите мне.


person Tanuj Yadav    schedule 28.08.2016    source источник
comment
Вы смотрели документацию по инструкции в Принципах работы?   -  person cschneid    schedule 01.09.2016


Ответы (2)


Все, что вы когда-либо хотели знать об IBM360, находится здесь:
http://bitsavers.trailing-edge.com/pdf/ibm/360

Язык ассемблера объясняется в: http://bitsavers.trailing-edge.com/pdf/ibm/360/asm/C28-6514-5_IBM_System_360_Assembler_Language_Level_E_F_Dec67.pdf

CLI означает непосредственное логическое сравнение.
Таким образом, вы должны знать, что сравниваете непосредственное значение, а не содержимое регистра.

Вот соответствующий раздел этого руководства:

введите здесь описание изображения

Обратите внимание, что вы используете версию с неявным операндом, поэтому соответствующий столбец равен 5, а не 4.
S1 — это регистр хранения.
I2 — это непосредственное значение S1, с которым сравнивается.

Итак, ответ - вариант А:

он сравнивает значение 3 с содержимым регистра 3

Подробнее см. стр. 119 и 120.

person Johan    schedule 01.09.2016
comment
Ты уверен? Разве CLI не должен сравнивать R3 с F'3', должно быть: CLI R3,F'3' - инструкции 'I' (CLI, MVI) не используют литералы для своих операндов. Но тогда полное слово (F'3') слишком длинное, так что это не сработает. - person Steve Ives; 06.10.2016
comment
Грустно говорить, что этот ответ неверен, как предполагает Стив Айвз. Инструкция CLI, как указано, сравнивает первый байт литерала (который будет нулем) с X'03, как объяснено в ответе ниже. - person Valerie R; 07.06.2017
comment
PS: первая часть комментария Стива Айвза также неверна. Если вы хотите сравнить один байт в регистре с непосредственным значением, вам подойдут такие инструкции, как CLM, а не CLI. - person Valerie R; 07.06.2017

CLI =F'3',3 сравнивает первый байт литерала F'3' со значением X'03'.

Они не будут сравниваться как равные, потому что первый байт литерала F'3' будет X'00'. F'3' генерирует полное слово (четырехбайтовое) значение 3 с ведущими двоичными нулями, т. е. X'00000003', выровненное по границе полного слова.

person dstaudacher    schedule 08.03.2017