Как можно записать команду сравнение CMP в другом виде?
Допустим у меня дана СМР R0, 1000, которая записана в ячейку памяти по адресу 500, как её можно записать по другому? Просто только начинаю разбираться в assembler.
Jesoxxx, что имеется в виду "в другом виде"? Причём тут то, что команда записана в ячейку именно 500? Какой ассемблер (процессор/архитектура)? Тут вопросов больше чем возможных ответов.
Jesoxxx, ну на ноль можно проверить как ниже показал Владимир Куц, на всё остальное можно проверить заменив CMP на вычитание, SUB. CMP внутри себя всё равно делает вычитание, правда не изменяет свои операнды, а в случае явного XOR и в случае явного SUB содержимое R0 потеряется.
SUB R0, 1000
BCC метка_если_R0_больше_или_равен_1000
BCS метка_если_R0_меньше_1000
Ну и по аналогии другие команды условного ветвления из серии B*, в принципе в данном случае можно применять любые как для CMP имея в виду только то, что начальное содержимое R0 будет утеряно.
Jesoxxx, ну да, CMP(B) транслируется именно в машинное слово 02SSDD или 12SSDD в зависимости от разрядности, но это уже не ассемблер, это уже машинное представление, в которое ассемблерные мнемоники и переводятся транслятором с ассемблера.