;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)