incdec_alt.c
来自「The Valgrind distribution has multiple t」· C语言 代码 · 共 69 行
C
69 行
/* A test of the alternative (redundant) encodings for {inc,dec}{w,l}. */#include <stdio.h>int r1,r2,r3,r4,r5,r6,r7,r8,a1,a2;extern void foo ( void );asm("\n""foo:\n""\tpushl $0\n""\tpopfl\n""\tmovl a1,%eax\n""\tmovl a2,%edx\n"/* inc %eax */"\t.byte 0xFF\n""\t.byte 0xC0\n""\tmovl %eax,r1\n""\tpushfl\n""\tpopl r2\n"/* inc %dx */"\t.byte 0x66\n""\t.byte 0xFF\n""\t.byte 0xC2\n""\tmovl %edx,r3\n""\tpushfl\n""\tpopl r4\n"/* dec %edx */"\t.byte 0xFF\n""\t.byte 0xCA\n""\tmovl %edx,r5\n""\tpushfl\n""\tpopl r6\n"/* dec %ax */"\t.byte 0x66\n""\t.byte 0xFF\n""\t.byte 0xC8\n""\tmovl %eax,r7\n""\tpushfl\n""\tpopl r8\n""\tret\n");int main ( void ){ a1 = 0x77777777; a2 = 0x88888888; r1=r2=r3=r4=r5=r6=r7=r8=0; foo(); printf("0x%08x\n",r1); printf("0x%08x\n",r2); printf("0x%08x\n",r3); printf("0x%08x\n",r4); printf("0x%08x\n",r5); printf("0x%08x\n",r6); printf("0x%08x\n",r7); printf("0x%08x\n",r8); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?