Просто выполняя инструкции по одной (например, используя this , чтобы посмотреть, что делает каждая инструкция)
mov ax, 15 # ax = 15
mov bx, 0Fh # bx = 15 (since 0Fh = 15)
cmp ax,bx
jle a1 # if (ax <= bx) jump to a1 -> true
mov bx,10 # Therefore these not executes
mov cx,3
jmp a2
a1:
mov ax,12 # ax = 12
mov cx,5 # cx = 5
a2:
dec ax # ax = ax - 1
inc bx # bx = bx + 1
loop a2; # cx = cx - 1 AND if (cx != 0) then jump to a2. Since cx is 5 when
# reaching here therefore looping 4 times which means overall the
# effect is ax = ax - 4 = 12 - 4 = 8 and bx = bx + 4 = 15 + 4 = 19
AX будет 8, а BX будет 19 после выполнения этого code.
Исправлено на основе наблюдения за орлиными глазами @ecm.