Size: a a a

Ассемблер

2020 December 04

АК

Алишер Косимов... in Ассемблер
Program x2;
var n:longint;
begin
Write('Введите n, n = ');
Readln(n);
While n mod 2 = 0 do 
    n:= n div 2;
If n=1 then Write('1')   
     else write('0’);
end.
источник

АК

Алишер Косимов... in Ассемблер
Просто не знаю как mod и div реализовать через простых инструкций
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
mod это что напомни?
источник

楽園松本 in Ассемблер
Сергей
Однобокое сравнение. Прям даже инвалидское. Я, например, на работе не смог развернуть питон из-за за запретов, а асм сразу встал. Соответственно с этой стороны если смотреть, то я бы асм изучил быстрее питона в бесконечное количество раз.
И таких вариантов тебе с 10 могу накидать с ходу. А то, блин, питон тут рекламировать вздумали...
А я питон люблю.
источник

楽園松本 in Ассемблер
И php
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
楽園松本
А я питон люблю.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
n mod 2 =0

заменяется делением (div) n на 2, при это получается целая часть (eax) и остаток от леления (edx) в данном случае тебе нужен edx и его сравниваешь с нулём.


n=n div 2
тут вроде можно просто маску применить на определение четности числа
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
а вообще самый простой, имхо, алгоритм сделать xor с наибольшим значимым битом

xor 8,1000b
;если zf то число стемень двойки

xor 9,1000b
;ноль не будет, число не степень двойки

но для этого надо найти старший значимый бит
источник

s

s54816 in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
а вообще самый простой, имхо, алгоритм сделать xor с наибольшим значимым битом

xor 8,1000b
;если zf то число стемень двойки

xor 9,1000b
;ноль не будет, число не степень двойки

но для этого надо найти старший значимый бит
Самый простой способ — это (x & (x - 1)) == 0.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
s54816
Самый простой способ — это (x & (x - 1)) == 0.
о, снова керниган всупает в дело
источник

s

s54816 in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
о, снова керниган всупает в дело
Четыре строки на асме или одна наглядная на Си. К тому же, если я на асме напишу, что останется сделать спрашивающему?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
s54816
Четыре строки на асме или одна наглядная на Си. К тому же, если я на асме напишу, что останется сделать спрашивающему?
не все даже говорят спасибо, пусть остается как есть, будут вопросы - сам спросит
источник

ST

Saenro T in Ассемблер
Однако у него RISC-V
источник

ST

Saenro T in Ассемблер
s54816
Самый простой способ — это (x & (x - 1)) == 0.
x%2==0
А так можно?
источник

VD

Vlad Doc in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
n mod 2 =0

заменяется делением (div) n на 2, при это получается целая часть (eax) и остаток от леления (edx) в данном случае тебе нужен edx и его сравниваешь с нулём.


n=n div 2
тут вроде можно просто маску применить на определение четности числа
(x & 1) чтобы проверить на чётность не подходит?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Vlad Doc
(x & 1) чтобы проверить на чётность не подходит?
это и есть маска по нулевому биту
источник

АК

Алишер Косимов... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
mod это что напомни?
вычисление остатка от целочисленного деления)
источник

SZ

Sergey Zhmylove in Ассемблер
Алишер Косимов
Вводится число, проверяешь, если оно является степенью двойки, то выводишь 1, если нет, то 0. Например, вводится 64, выводится 1. Вводишь 35, выводится 0. Ввод числа делать константой, так:
li x1, 1234
Не обязательно в регистр x1, это просто пример. Выполнять задание можно в любом ассемблере risc-v.
REM тебе нехватает
источник

АК

Алишер Косимов... in Ассемблер
Sergey Zhmylove
REM тебе нехватает
Я даже не представляю что это
источник

SZ

Sergey Zhmylove in Ассемблер
Алишер Косимов
Я даже не представляю что это
Это инструкция
источник