Я хочу спросить, что всякий раз, когда язык высокого уровня преобразуется в язык низкого уровня, он будет соответствовать друг другу? Например, если я собираюсь конвертировать следующий язык высокого уровня

while(LOCK!=0);
LOCK=1
\\Critical Section
LOCK=0

на следующий язык ассемблера

Load LOCK,R0
Store #1,LOCK
Compare R0,#0
Jump step 1
\\Critical Section
Store #0,LOCK

вместо

Load LOCK,R0
Compare R0,#0
Jump step 1
Store #1,LOCK
\\Critical Section
Store #0,LOCK

Это было бы неправильно? Поскольку оператор while состоит из загрузки, сравнения и перехода инструкций вместе. Но, как вы видели, я должен применить TSL (Test and Set Lock) для синхронизации процессов. Вот почему я задаю этот вопрос.

0