# 2020-09-29 #「汇编语言 第 3 版 王爽」- 参考答案:检测点 13.1

参考答案

1)
最大位移是 FFFF

2)
下面是测试程序,用于测试在 7ch 中的中断例程,由原教材提供:

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 [si],0
	 je ok
	 mov al, [si]
	 mov es:[di], al
	 inc si
	 add di, 2
	 mov bx, offset s - offset ok
	 int 7ch
ok:  mov ax, 4c00h
	 int 21h
code ends

end start

下面是中断例程的程序及安装程序:

assume cs:code

code segment

jmp_near_ptr_s:
	push si
	mov si, sp
	add ss:[si+2], bx
	pop si
	iret

start:
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;; 安装中断程序到内存
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; 复制的起始地址
	mov ax, cs					
	mov ds, ax
	mov si, offset jmp_near_ptr_s ; mov si, 0
	; 复制的目的地址
	mov ax, 0000H				
	mov es, ax
	mov di, 0200H
	; 复制长度
	mov cx, offset start - offset jmp_near_ptr_s 
	; 复制方向
	cld
	; 开始复制
	rep movsb
	
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	;; 设置中断向量表
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	mov ax, 0000H
	mov ds, ax
	mov word ptr ds:[7CH * 4], 0200H
	mov word ptr ds:[7CH * 4 + 2], 0000H
	
	mov ax, 4C00H
	int 21H
	
code ends

end start

参考文献

K4NZ / 参考答案:检测点 13.1
CSDN/汇编语言王爽第三版答案
百度文库/汇编语言实验答案 (王爽)


posted @ 2020-09-29 13:19  研究林纳斯写的  阅读(210)  评论(0编辑  收藏  举报