Ошибка перехода - Assembler
Формулировка задачи:
Нужно выполнить задание с условнм переходом
Написал код но выскакивает ошибка **Error** os2lab1.asm(37) Relative jump out of range by 0002h bytes
почитал в нете за ошибку - пишут что это из-за ограниченифя в диапазоне, но как исправить не понял
помогите исправаить пожадуйста
.model small .stack 100h .data cr_lf db 0Ah, 0Dh, '$' a dw 20 b dw 5 x dw ? s dw 5 dup ('?') m dw '-' z1 dw ? z2 dw ? mesg db 'Delenie na 0', '$' .code start: mov ax, @data mov ds, ax mov ax, a mov bx, b cmp ax, bx jg @@3 jl @@4 ; a=b xor ax, ax mov ax, -5 mov x, ax xor ax, ax xor bx, bx jmp @@minus ; a>b @@3: xor ax, ax mov ax, b ;ax -> b cwd idiv a ;ax-> b/a add ax, -61 ;ax-> b/a - 61 mov x, ax js @@minus jns @@plus ; a<b @@4: xor ax,ax mov ax, b cmp ax, 0 je @@Error sub ax, a add ax,-5 ; млaдш.часть ах=ах+(-5) adc dx, 0ffffh ; старшая часть dx=dx+(-5) cwd idiv b mov x, ax cmp x, 0 jl @@minus jg @@plus ; деления на 0 @@Error: mov ah,09h mov dx, offset mesg int 21h jmp @@Exit ; вывод отрицательного числа @@minus: xor ax, ax xor bx, bx mov ax, x mov bx, m mov s, bx sub ax, 0001b ; превращение xor ax, 0FFFFh ; в положительное число или neg ax mov z1, ax xor ax, ax mov ax, z1 xor bx, bx mov bl, 1010b div bl add ax, 30h mov s+1, ax xor ax, ax mov ax, z1 div bl mul bl mov z2, ax mov ax, z1 sub ax, z2 add ax, 30h mov s+2, ax mov s+3, '$' mov ah, 09h mov dx, offset s int 21h jmp @@Exit ; вивод положительного числа @@plus: xor ax, ax xor bx, bx mov ax, x mov bl, 1010b div bl add ax, 30h mov s, ax xor ax, ax mov ax, x div bl mul bl mov z2, ax mov ax, ax sub ax, z2 add ax, 30h mov s+1, ax mov s+3, '$' mov ah,09h mov dx, offset s int 21h jmp @@Exit @@Exit: mov ax, 4c00h int 21h end start
Решение задачи: «Ошибка перехода»
textual
Листинг программы
61 xor ax, ax 62 xor bx, bx 63 mov ax, x 64 mov bx, m 68 mov z1, ax 69 xor ax, ax 70 mov ax, z1 92 xor ax, ax 93 xor bx, bx 94 mov ax, x 95 mov bl, 1010b 99 xor ax, ax 100 mov ax, x 103 mov z2, ax 104 mov ax, ax 105 sub ax, z2