Задача на смещение

Тема в разделе "WASM.BEGINNERS", создана пользователем Benzin, 4 дек 2007.

  1. Benzin

    Benzin Сергей

    Публикаций:
    0
    Регистрация:
    26 авг 2007
    Сообщения:
    41
    Адрес:
    St.Petersburg
    Задачка на смещение в Паскале. Надо просто вывести числа. Сам Паскаль не знаю, а то что изучал в школе забыл уже, а в универе задали такое.
    Вот исходник, того что получилось, проблема в том что не правильно выдает только x_3 а все остальное нормально, помогите плиз.
    Код (Text):
    1. Type
    2.  
    3.      T_7 = record
    4.              x_1 : Word;
    5.              x_2 : Byte;
    6.              x_3 : Double;
    7.              x_4 : Array [1..2] of Byte;
    8.              x_5 : Char;
    9.              x_6 : Integer;
    10.            end;
    11.  
    12.            { x.x_1 := 61932;
    13.              x.x_2 := 15;
    14.              x.x_3 := -175.152;
    15.              x.x_4[1] := 11;
    16.              x.x_4[2] := 12;
    17.              x.x_5 := 'q';
    18.          x.x_6 := -1751;}
    19.  
    20. var
    21.      x : T_7;
    22.  
    23. begin
    24.              asm
    25.                {ᬥ饭ЁҐ x а §¬ҐбвЁвм ў bx}
    26.                mov bx, offset x
    27.  
    28.                {x.x_1 := 61932}
    29.            mov ax, 0F1ECh
    30.            mov [bx],ax
    31.  
    32.            {x.x_2 := 15}
    33.            mov al,0fh
    34.                mov [bx+2],al
    35.  
    36.                {x.x_3 := -175.1521}            
    37.                mov ax,00000h
    38.                mov [bx+4],ax
    39.                mov ax,00000h
    40.                mov [bx+6],ax
    41.                mov ax,0e4ddh
    42.                mov [bx+8],ax
    43.                mov ax,0c075h
    44.                mov [bx+10],ax
    45.  
    46.                {x.x_4[1] := 11}
    47.                mov ax,0Bh
    48.                mov [bx+11],ax              
    49.  
    50.                {x.x_4[2] := 12}
    51.                mov ax,0Ch
    52.                mov [bx+12],ax
    53.  
    54.                {x.x_5 := 'l'}
    55.                mov al,108
    56.                mov [bx+13],al
    57.  
    58.                {x.x_6 := -1751}
    59.            mov ax,0f929h
    60.            mov [bx+14],ax
    61.  
    62.              end;
    63.  
    64.              Writeln;
    65.              Writeln('x.x_1  = ', x.x_1);
    66.          Writeln('x.x_2  = ', x.x_2);
    67.              Writeln('x.x_3  = ', x.x_3);
    68.              Writeln('x.x_4[1]  = ', x.x_4[1]);
    69.              Writeln('x.x_4[2]  = ', x.x_4[2]);
    70.              Writeln('x.x_5  = ', x.x_5);
    71.              Writeln('x.x_6  = ', x.x_6);
    72.              Readln;
    73. end.