MOV AH,XXH INT XXH——BIOS中断和DOS中断

  • BIOS在系统板ROM里存放着一套程序容量8KB,地址从FE000H开始
    在这里插入图片描述
  • 感兴趣可以一直查看
    在这里插入图片描述
  • 一直到3F
    在这里插入图片描述
  • 但看ASC码是字符显示,推测并不是程序而是字符
    在这里插入图片描述
  • 就这里有字符,往后一直是0

  • BIOS主要内容
  1. 硬件系统的检测和初始化程序
  2. 外部中断和内部中断的中断例程
  3. 用于对硬件设备进行I/O操作的中断例程
  4. 其他和硬件系统相关的中断例程
  • 使用BIOS功能调用,程序员不用了解硬件的操作细节,直接使用指令参数设置,并调用BIOS例程,即可完成相关工作
  1. 方便编程
  2. 能写出简洁、可读性好、易于移植的程序

  • 显示,调用10H中断
  • (AH) = 2调用10H中断例程的2号子程序,设置光标位置
  • (AH) = 9调用10H中断例程的9号子程序,在光标位置显示字符
assume cs:code

code segment
     mov ah,2;置光标功能
     mov bh,0;0页
     mov dh,5;dh放行号
     mov dl,12;dl放列号
     int 10h
     
     mov ah,9 ;显示字符功能
     mov al,'a' ;字符
     mov bl,11001010b ;颜色属性
     mov bh,0 ;0页
     mov cx,3 ;字符重复个数
     int 10h
     
     mov ah,4ch
     int 21h
     
code ends
end

在这里插入图片描述

  • 颜色属性解释
    在这里插入图片描述

  • 直接百度BIOS中断手册
  • 显示服务INT 10H
  • 功能09H
  • 功能描述:在当前光标处按指定属性显示字符
  • 入口参数
AH = 09H
AL = 字码
BH = 显示页码
BL = 属性
CX = 重复输出次数
  • 出口参数:无

DOS中断

  • INT 21H功能调用
  • 功能2AH取系统日期
    在这里插入图片描述
  • 没有显示
    在这里插入图片描述
  • 优先考虑更高级的DOS中断

  • 09h功能:在光标位置显示字符串’$'结束
  • ds:dx指向要显示的字符串
mov ah,9
int 21h
  • 事实证明数据段的指定不是必须的,(又可以少写几行代码了:-)但start标号必须加
assume cs:code

data segment
 buf db 'welcome to masm!','$'
data ends

code segment
start:
     mov ah,2;置光标功能
     mov bh,0;0页
     mov dh,5;dh放行号
     mov dl,12;dl放列号
     int 10h
     
     mov ax,data
     mov ds,ax
     lea dx,buf
     mov ah,9 ;显示字符功能
     int 21h
     
     mov ah,4ch
     int 21h
     
code ends
end start

在这里插入图片描述

  • 不加start标号
    在这里插入图片描述
  • 编译也看不出来什么
    在这里插入图片描述
  • 正确的打开方式
    在这里插入图片描述
发布了251 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xiong_xin/article/details/103613406