| #include<stdio.h> | |
| #include<assert.h> | |
| int main() | |
| { | |
| int dsp, sum; | |
| int result; | |
| dsp = 0x20; | |
| sum = 0x01; | |
| result = 0x02; | |
| __asm | |
| ("wrdsp %1\n\t" | |
| "bposge32 test1\n\t" | |
| "nop\n\t" | |
| "addi %0, 0xA2\n\t" | |
| "nop\n\t" | |
| "test1:\n\t" | |
| "addi %0, 0x01\n\t" | |
| : "+r"(sum) | |
| : "r"(dsp) | |
| ); | |
| assert(sum == result); | |
| dsp = 0x10; | |
| sum = 0x01; | |
| result = 0xA4; | |
| __asm | |
| ("wrdsp %1\n\t" | |
| "bposge32 test2\n\t" | |
| "nop\n\t" | |
| "addi %0, 0xA2\n\t" | |
| "nop\n\t" | |
| "test2:\n\t" | |
| "addi %0, 0x01\n\t" | |
| : "+r"(sum) | |
| : "r"(dsp) | |
| ); | |
| assert(sum == result); | |
| return 0; | |
| } |