Wkh19.1 发表于 2020-4-18 21:39:30

实验十二

这个程序可以运行,但div之后并没有显示出字符串,我继续t命令,内存中显示它继续执行do0这个程序,我不知道问题出在哪,哪位大神能否指教?
assume cs:code
code segment
start:        mov ax,cs
                mov ds,ax
                mov si,offset do0;这三步是把ds:si指向do0程序代码所在的源地址
               
                mov ax,0
                mov es,ax
                mov di,200h;把es:di作为目标地址
               
                mov cx,offset do0end-offset do0;计算出do0程序代码所占字节长度
               
                cld
                rep movsb;把do0程序代码传到内存0000:0200h处
               
               
                mov ax,0
                mov es,ax
                mov word ptr es:,200h
                mov word ptr es:,0;设置中断向量
               
               
                mov ax,4c00h
                int 21h
               
do0:        jmp short s0
                db "divide error!"
               
        s0: mov ax,cs
                mov ds,ax
                mov si,202h
               
                mov ax,0b800h
                mov es,ax
                mov di,12*160+27*2;计算字符串在显存上的地址
               
                mov cx,13;共13个字节,循环13次
        s:        mov al,
                mov es:,al
                inc si
                add di,2
                loop s
                       
                mov ax,4c00h
                int 21h
               
do0end:nop

code ends
end start               
页: [1]
查看完整版本: 实验十二