检测点13.1
汇编语言 检测点13.1.png
(1)
- loop指令 的位移范围是-128~127 ,即向低地址最大移动128、向高地址最大移动127【参考 书 第三版9.8节 loop指令】
- 既然是实现loop指令的功能,那么就和loop指令位移范围一样
(2)
实际运行
检测点13.1 用7CH中断程序完成jmp near ptr s指令的功能.png
完整源码
- 应用程序
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
mov al,02H
mov es:[di+1],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
start: mov ax,cs
mov ds,ax
mov si, offset lp
mov ax,0
mov es,ax
mov di,200H
mov cx,offset lpend - offset lp
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7CH*4],200H
mov word ptr es:[7CH*4+2],0
mov ax,4c00H
int 21H
lp: push bp
mov bp,sp
add [bp+2],bx
lpret: pop bp
iret
lpend: nop
code ends
end start
使用 7CH 中断程序完成 jmp near ptr s 指令的功能
-
jmp near ptr s
相当于 只执行一次并且跳回到标号s处的loop指令
代码参考
检测点13.2
检测点13.2.png
- (1)错误。 BIOS(基本输入输出系统),是放在ROM里面的程序,ROM是Read Only Memory,只读不写的,因此无法修改。
- (2)错误。中断例程int 19H 被执行之后,操作系统DOS才会被启动,先后顺序不能改。