Среди точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат - Assembler

Узнай цену своей работы

Формулировка задачи:

Дано множество A из N точек (точки заданы своими координатами x, y). Среди всех точек этого множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат. Если таких точек нет, то вывести точку с нулевыми координатами в ассемблере помогите плззззззз

Решение задачи: «Среди точек множества, лежащих в первой или третьей четверти, найти точку, наиболее близкую к началу координат»

textual
Листинг программы
.386
.model small
.stack 100h
 
Point   struct 
    x   dw  ?
    y   dw  ?
Point   ends
 
.data
    A   Point   <1,1>,<-1,1>,<-1,-2>,<2,-1>
    B   Point   <0,0>;
    min dw      -1
    
.code
Start:
 
    mov     ax,@data
    mov     ds,ax     
    
    lea     si,A
    mov     cx,lengthof A + 1   ;число итераций
    
@L: 
    mov     ax, [si].Point.x
    mov     bx, [si].Point.y
    
    xor     ax,bx           ;нахождение четверти
    test    ax,8000h            
    jnz @f      
    
    mov     ax, [si].Point.x
    imul    ax,ax
    imul    bx,bx
    add     ax,bx           ;сумма квадратов
    
    cmp     min,ax              ;сравнить
    jbe @f
    
    mov     min,ax  
    mov     ax, [si].Point.x
    mov     bx, [si].Point.y
    mov     B.x,ax
    mov     B.y,bx      ;записать в B
@@:
    add     si,type A
    loop    @L
        
    ;вывод (только для положительных)
    mov     ah,02h
    
    mov     dx,B.x
    add     dl,'0'
    int     21h
 
    mov     dl,';'
    int     21h
    
    mov     dx,B.y
    add     dl,'0'
    int     21h
    
    mov     ax,4c00h
    int     21h
end Start

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы