Привет, я перенаправил прерывание переполнения при разделении, чтобы указать на свое специально созданное прерывание, которое выводит на экран «привет, я здесь», вместо этого выводятся странные символы ascii. Может кто-нибудь сказать мне, почему? вот код
[ORG 100h]
jmp start
message: dw 'hello man here i am'
prntstr: push ax
push bx
push cx
push dx
push si
push di
push bp
push ds
push es
push cs
pop ds
mov ah, 0x13
mov al, 1
mov bh, 0
mov bl, 7
mov dx,0x0a03
mov cx,11
push cs
push es
mov bp,message
int 0x10
pop es
pop ds
pop bp
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ret
tsr: mov ah, 0
int 0x16
call prntstr
iret
;mov ah,4ch
;mov al, 6
;int 0x21
;iret
divs: mov ax,0x8569
mov dl,2
div dl
ret
start: xor ax,ax
mov es,ax
mov word[es:0*4], tsr
mov [es:0*4+2],cs
call divs
mov ax,0x4c00
int 0x21
еще одна вещь, которую я не понимаю в коде, это где я установил смещение на es: 0 * 4 - я предполагаю, что 00 - это место прерывания переполнения разделения? что 0 * 4 для coz что-либо умноженное на ноль будет означать то же самое, так почему 4? заранее спасибо