Задание по сортировке - Assembler

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

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

Есть задание, которое звучит следующим образом: Отсортировать заданный массив на положительные и отрицательные числа. Длинна массива 100 байт. Адрес исходного массива 5B00:1000H, адрес положительных чисел 5C00:2000H, адрес отрицательных - 6000:3000H. Код нужен под 8086, заранее благодарен

Решение задачи: «Задание по сортировке»

textual
Листинг программы
.model tiny
.code
org 100h
 
Start:
 
  mov ax,5B00h
  mov ds,ax
  mov ax,5C00h
  mov es,ax
  mov si,1000h                    ; исходный (в сегменте ds)
  mov di,2000h                    ; положительные (в сегменте es)
  mov bx,3000h+(6000h-5B00h)*10h  ; отрицательные (в сегменте ds)
 
  mov cx,100
@@next:
  lodsb  ; al=ds:[si], si=si+1
  test al,al
  jns @@pos
  mov [bx],al  ; орицательное
  inc bx
  cmp al,?
  org $-1
@@pos:
  stosb  ; положительное es:[di]=al, di=di+1
@@cont:
  loop @@next
 
  int 20h
 
end Start

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

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