#include int height = 0; // = height of stair case int numBricks = 0; // = num bricks needed to build staircase void c_tri() { while(0 < height) { numBricks = numBricks + height; height = height - 1; } } void asm_tri() { asm("push eax \n\t" "push ebx \n\t" "mov ebx, 0 \n" "mov eax, _height \n\t" "WHILE:\n\t" "cmp eax, 0 \n\t" "jna DONE \n\t" "add ebx, eax \n\t" "sub eax, 1 \n\t" "jmp WHILE \n" "DONE: \n\t" "mov _numBricks, ebx \n\t" "pop ebx \n\t" "pop eax"); } int main(void) { while(1) { printf("-> "); scanf("%d", &height); if (height < 0) break; asm_tri(); printf("%d\n", numBricks); } printf("bye\n"); return 0; }