몇일전에도 비슷하게 질문을 햇는데 아래 내용 꼭 좀 부탁드립니다..
#define wfe(addr,bits) \ asm(".word %r0" : : "X" ((4<<9) | (0<<8) | bits));\ asm(".word %r0" : : "X" (addr & 0xFFFF));
찾아도 잘 안나오고 해서 이렇게 문의를 드립니다
며칠전에 올리셨던 똑같은 질문에 gcc의 인라인 어셈블리 관련 내용을 참고하라는 댓글이 달려있던걸로 기억하는데 못 보셨나요?
asm(".word %r0" : : "X" ((4<<9) | (0<<8) | bits));
.word: 4 byte 공간에 %r0 값을 저장한다는 것입니다.
(4<<9) | (0<<8) | bits): input으로 받는 C 언어 값입니다.
: empty: output 없습니다. 메모리에 저장만합니다.
%r0: 두개의 의미로 나누어야합니다. #1 r0: Compiler에게 r0 값을 연산의 저장소로 사용하도록 요청합니다. #2 %자체는 Input의 값을 가리킵니다.
"X" : 이 어셈블리 명령어 실행시에 operand가 제약이 필요하지 않다는 것입니다.
안녕하세요 우선 답변 정말 감사드립니다 근데 먼가 알듯 말듯 좀 어렵네요...
죄송하지만 제가 작성한 예를 들어 좀 더 쉽게 설명 부탁드려도 될가요?
다시한번 답변감사드립니다
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
며칠전에 올리셨던 똑같은 질문에 gcc의 인라인
며칠전에 올리셨던 똑같은 질문에 gcc의 인라인 어셈블리 관련 내용을 참고하라는 댓글이 달려있던걸로 기억하는데 못 보셨나요?
설명
.word: 4 byte 공간에 %r0 값을 저장한다는 것입니다.
(4<<9) | (0<<8) | bits): input으로 받는 C 언어 값입니다.
: empty: output 없습니다. 메모리에 저장만합니다.
%r0: 두개의 의미로 나누어야합니다.
#1 r0: Compiler에게 r0 값을 연산의 저장소로 사용하도록 요청합니다.
#2 %자체는 Input의 값을 가리킵니다.
"X" : 이 어셈블리 명령어 실행시에 operand가 제약이 필요하지 않다는 것입니다.
안녕하세요 한참 지난 내용인데 다시 질문 드릴게요
안녕하세요 우선 답변 정말 감사드립니다
근데 먼가 알듯 말듯 좀 어렵네요...
죄송하지만 제가 작성한 예를 들어 좀 더 쉽게 설명 부탁드려도 될가요?
다시한번 답변감사드립니다
댓글 달기