Answer the question
In order to leave comments, you need to log in
There is a problem with the parity flag in asma, is there an error in the program?
Good afternoon, I can’t find an error in the program, for some reason the number 5 is written to CL. It takes data from the 6th memory cell, but how can I force it to consider and check exactly the contents of the cell?
Task: Enter the sequence of constants 0Н - 19Н into the memory area ds:0008Н - ds:0027Н and find the third even number among them, write this number into the CL register.
Here is the program code
code segment
assume cs:code, ds:code
start:
mov al,0h
mov si,0007h
m1:
inc si ;следующее число
mov ds:[si],al ;запись в память
inc al ;следующее число
cmp si,0027h ;проверка на равность 27
je m2 ;переход в m2 если равно
jmp m1 ;если не равно возвращаемся в m1
m2:
mov si,0007h
m3:
inc si
mov al,ds:[si]
jp m4 ;переход, если установлен флаг четности P=1
jnp m3 ;переход, если установлен флаг четности P=0
m4:
inc dl ;счетчик четных чисел
cmp dl,3 ;проверка на равность 3
je m5 ;переход в m3 если равно
jmp m3 ;если не равно возвращаемся в цикл
m5:
mov cl,al
code ends
end start
Answer the question
In order to leave comments, you need to log in
mov al,ds:[si] jp m4 ;переход, если установлен флаг четности P=1 jnp m3 ;переход, если установлен флаг четности P=0
mov al,ds:[si]
test al, 1
jz m4 ;переход, если число чётное
jmp m3 ;переход, если число нечётное
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question