-1
저는 방금 대학에서 8086을 배우기 시작했고 어셈블리에서 버블 정렬을 구현하려고합니다. 여기에있는 문제는 3245와 2563을 비교하면 값이 변하지 않아야 캐리가 생성된다는 것입니다.캐리가 실제로 생산해서는 안되는 때 생산 되었습니까? (8086 assembly)
3245
- 2563
______
0CE2
______
코드 : -
data segment
array dw 1535h,3245h,2563h,5632h
data ends
code segment
start: assume cs:code, ds:data
mov dx,data
mov ds,dx
mov bx,0004h
step1: lea si,array
mov dx,bx
dec dx
mov cx,dx
jz lbl
step: mov ax,[si]
cmp ax,[si+1]
jc down
xchg ax,[si+1]
xchg ax,[si]
down: add si,2
loop step
dec bx
jnz step1
lbl: mov ax,4c00h
int 21h
code ends
end start
무슨 문제가 있습니까? 실수를 용서해주세요. 단지 개념을 배우려고합니다.
당신이'[SI + 1]'이 아닌'[SI + 2]'하시겠습니까? –
'[si + 1]'모두 잘못되었습니다. 아마도 다음 요소를 얻기 위해'[si + 2]'를 의미했을 것입니다. 각 단어는 2 바이트입니다. 추신 : 디버거를 사용하는 방법을 배우십시오. – Jester
젠장, 나는 어리 석다. 감사합니다 @ SamiKuhmonen –