есть кто шарящий в ассемблере ?

программирование assembler ассемблер


Примечание:
почему не работает проверка на чётность ?

stack segment STACK
db 64 dup(?)
stack ends
data segment
x dw 1, -2, 7, -3, 2, 9, 8, 2, 3, ;исходный массив
y dw 9 dup(?)
n dw 9
data ends
code SEGMENT
assume ss:stack,ds:data,cs:code
start proc far
;--------------Возврат в dos
push ds
sub ax,ax
push ax
;--Занесение в регистр ds адреса сегмента данных
mov ax,data
mov ds,ax
;--------------Начало программы
mov cx,n
lea dx,x
lea bx,y

c1:
mov ax, x[di]
test ax,1
add di,2
jz c2
jmp endk
c2:
mov y[si],ax
add si,2
endk:
loop c1


st_ret: ret
start endp
code ends
end start

Примечание:
* уже нашёл ошибку и написал программу.
и д я уверен что там так должно быть.
просто надо было написать
mov ax, x[di]
add di,2
test ax,1

вместо
mov ax, x[di]
test ax,1
add di,2
Ответы:
Ну может напишешь сначала че хотел то?
Ты не хочешь выставить начальные значения регистров di и si? И уверен ли ты, что тут должны быть bx и dx?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.