;Alto->8086 small-c compiler rev 2.0 C←CODE SEGMENT $INCLUDE(8086LIB.D) $INCLUDE(test125.DEC) ASSUME CS:C←CODE, DS:C←DATA ; struct Str1 { int a, b, c, d; }; ; struct Str2 { int len; int type; struct Str1 entries[10]; }; ; struct Str3 { struct Str1 entries[10]; }; ; Test124() ←Test124: CALL StkChk PUSH BP MOV BP,SP ; { ; struct Str3 *str3; ; struct Str2 *str2; ; int *temp; ADD SP,0FFFAX ; str2 = (struct Str2 *) (((int *) str3)-2); ; BX ← ←str3 MOV BX,[BP-2] ADD BX,0FFFCX ; ←str2 ← BX MOV [BP-4],BX ; temp = ((int *) str3)-2; ; BX ← ←str3 MOV BX,[BP-2] ADD BX,0FFFCX ; ←temp ← BX POP DX PUSH BX ; str2 = (struct Str2 *) temp; ; BX ← ←temp POP BX PUSH BX ; ←str2 ← BX MOV [BP-4],BX ; }; MOV SP,BP POP BP RET; ; Externals Declared Here PUBLIC ←Test124 C←CODE ENDS ; Number of Bytes of Code = 020X, (32)