Помогите переделать прогу))

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Алина27
Сообщения: 4
Зарегистрирован: 18 дек 2013, 13:39

Помогите переделать прогу))

Сообщение Алина27 » 18 дек 2013, 13:50

Задача этой прораммы состоит в том ,чтобы переставить числа в обратном порядке,дан массив байт.Запускаю через dos
.model tiny
.code
org 100h
start:
mov si,offset mass ; запоминаем адрес начала массива с числами
mov di,si
add di,cols
std
go:
mov al,[si]
mov ah,[di]
mov [si],ah
stosb
inc si
cmp si,di
jl go
mov ax,4c00h
int 21h
.data
mass db 0,1,2,3,4,5,6,7,8,9
cols equ $-mass-1
end start
как ее можно переделать,для массива слов и чтобы попарно менялись местами числа?

Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 16:14
Откуда: 71 RUS
Контактная информация:

Re: Помогите переделать прогу))

Сообщение somewhere » 18 дек 2013, 19:44

Код: Выделить всё

 .model tiny
 .code
 org 100h
 start:
 mov si, offset mass ; запоминаем адрес начала массива с числами
 mov bx, 18
 go:
 mov ax, [si]
 xchg ax, [bx+si]
 add si, 2
 sub bx, 4
 jnc go
 mov ax,4c00h
 int 21h
 .data
 mass dw 0,1,2,3,4,5,6,7,8,9
 end start
It's a long way to the top if you wanna rock'n'roll

Ответить