Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Проверьте код


Автор: serega721 16.5.2010, 10:08
Программу написал но почему-то некомпилируется
Суть написать программу определяющую,принадлежит ли точка F с координатами (x;y) заданной геометрической области.
Код


Title    Karkas
;=====================================
StackSG    segment    para STACK 'Stack'  ; Stack segment

    dw    1024    dup (?)

StackSG    Ends
;=====================================
DataSG    Segment para 'Data'    ; Data segment

F dw ?     //точка
F1 dw 1  //фигура 1
F2 dw 1  //фигура 2 и.т.д
F3 dw 1
F4 dw 1
F5 dw 1
F6 dw 1
F7 dw 1
F8 dw 1   
x1 dw 1
y1 dw 10
x2 dw 13
y2 dw 10
x3 dw 13
y3 dw 8
x4 dw 14
y4 dw 8
x5 dw 14
y5 dw 1
x6 dw 2
y6 dw 1
x7 dw 2
y7 dw 3
x8 dw 1
y8 dw 3
x9 dw 3
y9 dw 9
x10 dw 12
y10 dw 9
x11 dw 12
y11 dw 5
x12 dw 7
y12 dw 5
x13 dw 7
y13 dw 4
x14 dw 12
y14 dw 4
x15 dw 12
y15 dw 2
x16 dw 3
y16 dw 2
x17 dw 3
y17 dw 6
x18 dw 8
y18 dw 6
x19 dw 8
y19 dw 7
x20 dw 3
y20 dw 7
x   dw 2 //координаты где находится точка
y   dw 8 










DataSG Ends
;=====================================
CodeSG    Segment    para 'Code' ; Code segment

BEGIN    proc    far

    assume    ss:StackSG,cs:CodeSG,ds:DataSG

    push    ds
    sub    ax,ax
    push    ax
    mov    ax, DataSG
    mov    ds, ax
  
;--------------------------------------
; PROGRAM
   mov ax,x
   mov bx,y
   

   cmp ax,x1 //Проверяем 1 фигуру
   jge m1      
   mov F1,0
m1:cmp ax,x9
   jle m2
   mov F1,0
m2:cmp bx,y8
   jge m3
   mov F1,0
m3:cmp bx,y1
   jle m4
   mov F1,0

m4: cmp ax,x9
   jge m5
   mov F2,0
m5: cmp ax,x10
   jle m6
   mov F2,0
m6: cmp bx,y10
   jle m7
   mov F2,0
m7: cmp bx,y2
   jle m8
   mov F2,0

m8: cmp ax,x10
   jge m9
   mov F3,0
m9: cmp ax,x2
   jle m10
   mov F3,0
m10: cmp bx,y3
    jle m11
    mov F3,0
m11: cmp bx,y2
    jle m12
    mov F3,0

m12: cmp ax,x10
    jge m13
    mov F4,0
m13: cmp ax,x4
    jle m14
    mov F4,0
m14: cmp bx,y5
    jle m15 
    mov F4,0
m15: cmp bx,y4
    jle m16
    mov F4,0

m16: cmp ax,x12
    jge m17
    mov F5,0
m17: cmp ax,x11
    jle m18
    mov F5,0
m18: cmp bx,y14
    jle m19
    mov F5,0
m19: cmp bx,y12
    jle m20
    mov F5,0

m20: cmp ax,x16
    jge m21
    mov F6,0
m21: cmp ax,x15
    jle m22
    mov F6,0
m22: cmp bx,y5
    jle m23
    mov F6,0
m23: cmp bx,y15
    jle m24
    mov,F6,0

m24: cmp ax,x7
    jge m25
    mov F7,0
m25: cmp ax,x16
    jle m26
    mov F7,0
m26: cmp bx,y6
    jle m27
    mov F7,0
m27: cmp bx,y7
    jle m28
    mov F7,0

m28: cmp ax,x20
    jge m29
    mov F8,0
m29: cmp ax,x19
    jle m30
    mov F8,0
m30: cmp bx,y17
    jle m31
    mov F8,0
m31: cmp bx,y20
    jle m32
    mov F8,0

m32: mov ax, F1
    add ax, F2
    add ax, F3
    add ax, F4
    add ax, F5
    add ax, F6
    add ax, F7
    add ax, F8
    mov F, ax
    

   


    











;--------------------------------------
ret
BEGIN    endp

CodeSG    Ends

END    BEGIN

Автор: iff 16.5.2010, 12:59
Цитата(serega721 @  16.5.2010,  10:08 Найти цитируемый пост)
но почему-то некомпилируется

Что значит не компилируется? Компилятор должен сказать в каких строках ошибки.

П.С. Я бы сделал циклом. Скорость думаю здесь не черезвычайно важна.

Добавлено через 1 минуту и 28 секунд
Кстате, не забывайте ваша программа только считает и ничего не выводит

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)