[063][汇编原理]检测点13.1|[063][汇编原理]检测点13.1 13.2

检测点13.1 [063][汇编原理]检测点13.1|[063][汇编原理]检测点13.1 13.2
文章图片
汇编语言 检测点13.1.png (1)

  • loop指令 的位移范围是-128~127 ,即向低地址最大移动128、向高地址最大移动127【参考 书 第三版9.8节 loop指令】
  • 既然是实现loop指令的功能,那么就和loop指令位移范围一样
(2) 实际运行 [063][汇编原理]检测点13.1|[063][汇编原理]检测点13.1 13.2
文章图片
检测点13.1 用7CH中断程序完成jmp near ptr s指令的功能.png 完整源码
  • 应用程序
assume cs:code data segment db 'conversation',0 data endscode 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 21Hcode ends end start

  • 中断处理程序
assume cs:code code segment start:mov ax,cs mov ds,ax mov si, offset lpmov ax,0 mov es,ax mov di,200H mov cx,offset lpend - offset lp cld rep movsbmov ax,0 mov es,ax mov word ptr es:[7CH*4],200H mov word ptr es:[7CH*4+2],0mov ax,4c00H int 21Hlp: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指令
代码参考
  • https://www.jianshu.com/p/6b00375b3046
检测点13.2 [063][汇编原理]检测点13.1|[063][汇编原理]检测点13.1 13.2
文章图片
检测点13.2.png
  • (1)错误。 BIOS(基本输入输出系统),是放在ROM里面的程序,ROM是Read Only Memory,只读不写的,因此无法修改。
  • (2)错误。中断例程int 19H 被执行之后,操作系统DOS才会被启动,先后顺序不能改。

    推荐阅读