16 비트 시퀀스가 주어지면이 비트를 재귀 적으로 역전시키고 싶습니다. 1,001 1,110 0,010 0,110 예
는 0110 0100 0111 1001어셈블리 언어에서 비트를 반복적으로 역전합니다.
I에만 추가하는 액세스되고, 및 NOT.
서브 루틴은 2 개의 매개 변수, 반전 될 남은 비트 수 및 비트 값을 허용합니다. 결과를 리턴합니다.
나는 이것을하는 방법을 생각하고있다. 내 머리 속에 갑자기 튀어 나온 한가지는 0000 0000 0000 0001의 비트가 연속적으로 시작되고 처리 할 비트의 수를 -1로 남긴 다음이 비트를 전달 된 비트 패턴으로 지정하는 것입니다. 문제는 이것이 매우 불충분 한 것 같아요. 또한 비트를 뒤집기 위해 결과를 저장하는 방법을 모르겠습니다.
어떤 힌트가 있습니까? 그것은 숙제이므로 힌트를 주시기 바랍니다 :)
일부 점프도 사용할 수 있다고 가정합니다. MOV 및 CMP 및 TEST는 어떻게됩니까? – user470379
예. 점프, 가지, 그런 종류의 일. 나는 그것들을 가지고 있지 않다. 그러나 ADD, AND 또는 NOT을 사용하면 3 개의 조건 코드가 설정됩니다. 음수, 0 및 양수입니다. 나는 그것들을 사용하여 내가 어디로 갈 것인지를 결정할 수 있습니다. 나는 MOV CMP 나 TEST가 없다. – CPlayer