0
간단한 질문이 있습니다. 어디서부터 시작해야할지 모르겠다. 적어도 2 자릿수를 출력하려면 간단한 수학 계산 (+, _, *, /)이 필요합니다.Motorola 68000 Assembly
예 : 1 + 2 = 03
move #1,D0
move #2,D1
add.l D0,D1
출력 03. 위 요구 ... 그것은 3
I가 꼭 디스플레이 0을했지만 정상 추가 출력 지시는 이것을하지 않습니다. 어떻게 이런 식으로 접근합니까? 나는 길을 잃었다. ?? TY.
위 출력되지 않습니다 아무것도 위에 기록했다. 값'3 '은 순전히 추상적 인 개체입니다. 레지스터 'd0'의 전류에 의한 바이너리 인코딩 전류는 값 '3'(2 개의 최하위 비트는 '1'로, 다른 비트는 '0'으로 해석 될 수 있습니다. 비트 * i의 값을 취하면 *로 2^i),하지만 그건 사실 수학적 추상 '3', 그냥 불완전한 "거울 반사"전기 전류에 투영 아니에요. 반면에 "3"을 쓰는 인류 문양은 자체적으로 '3'값이 아니며, 다시 말하면 10 진수 인코딩을 사용하여 폰트 글리프로의 불완전한 투영을 의미합니다. 값 3에서 "03"을 원하면 2 자 (3div/mod 10)를 출력하십시오. – Ped7g
내 첫 번째 의견을 바꾸려면 : 'add'의 값은 OK입니다. 당신이 필요로하는 것은 C 포맷의 printf ("% d", 3)'vs'printf ("% 02d", 3)'에서와 같이 같은 값인'3'을 출력하지만, 단일 문자''3 '', 두 번째 문자''0 ''및 ''3 '을 출력합니다. 값을 출력하는 데 사용하는 항목 (일부 라이브러리?)에 따라 일부 서식 지정 코드가 이미 포함되어있을 수 있습니다. – Ped7g
그래서 만약 내가 printf ("% 02d, 3)"디스어셈블러 넣어 내 대답을해야 ?? 좋아, 힌트를 위해 타이. 나는 그것을 시도 할 것이다. 조언을 계속 간다. – MattBorg