项羽姓秦 发表于 2020-4-3 00:16:32

检测点13.1作业练习

本帖最后由 项羽姓秦 于 2020-4-3 00:17 编辑

(1)在上面的内容中,我们用 7ch 中断例程实现 loop 的功能,则上面的 7ch
中断例程所能进行的最大转移位移是多少?

最大位移是 FFFFH;

(2)用 7ch 中断例程完成 jmp nea pt s 指令功能,用 bx 向中断例程传送转移
位移。

应用举例:在屏幕的第 12 行,显示 data 段中以 0 结尾的字符串。

assume cs:code
data segment
        db 'conversation',0
data ends
code segment
start:
        mov ax,data
        mov ds,ax
        mov si,0
        mov ax,0b800h
        mov es,ax
        mov di,12*160
s:        cmp byte ptr ,0
        je ok
        mov al,
        mov es:,al
        inc si
        add di,2
        mov bx,offset s-offset ok
        int 7ch
ok:        mov ax,4c00h
        int 21h
code ends
end start

jmp near ptr s 指令的功能为:(ip)=(ip)+16 位移,实现段内近转移

assume cs:code
code segment
start:
        mov ax,cs
        mov ds,ax
        mov si,offset do0
        mov ax,0
        mov es,ax
        mov di,200h
        mov cx,offset do0end-offset do0
        cld
        rep movsb
        mov ax,0
        mov es,ax
        mov word ptr es:,200h
        mov word ptr es:,0
        mov ax,4c00h
        int 21h
do0:
        push bp
        mov bp,sp
        add ,bx
        pop bp
        iret
        mov ax,4c00h
        int 21h
do0end:nop
code ends
end start
页: [1]
查看完整版本: 检测点13.1作业练习