[064][汇编语言]BIOS DOS中断例程应用

BIOS : int 10H

  • BIOS 是写在ROM里面的一套程序


    [064][汇编语言]BIOS DOS中断例程应用_第1张图片
    BIOS: int 10H 在屏幕的5行12列显示3个红底高亮闪烁绿色的'a'.png
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 ax,4C00H
    int 21H
    
    code ends
    end 

DOS : int 21H

  • DOS是操作系统


    [064][汇编语言]BIOS DOS中断例程应用_第2张图片
    DOS:int 21H 在屏幕的5行12列显示字符串 welcome to masm!.png
assume cs:code
data segment
    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
            mov dx,0    ;ds:dx指向字符串的首地址data:0
            mov ah,9
            
            int 21H
            
            mov ax,4c00H
            int 21H
    
    code ends
    end start
  • mov ax,4C00H int 21H
等价于
mov ah,4ch
mov al,0
int 21H

mov ax,4c00H

AX
-----
AH  |AL
4C  00

int 21H   AH = 4ch
调用第21号中断例程中的4ch号子程序
功能为程序返回
返回值是 AL = 00H

BUG

不知道为什么,光标和字符串位置总不一样?

你可能感兴趣的:([064][汇编语言]BIOS DOS中断例程应用)