分段故障和int 10h

时间:2014-04-20 11:59:21

标签: assembly nasm interrupt

我编写了带参数输出字符串的代码,但我的程序因分段错误:11 而崩溃。

global main
segment .data
    col db 1
    row db 24
    msg db 'Hello'   
    len equ $-msg
segment .text
exit:
    mov eax, 0x1
    int 0x80
main:
    mov ah, 13h
    mov al, 1
    xor bh, bh
    mov cx, 5
    mov dh, 24
    mov dl, 20
    mov bp, msg
    int 10h

    call exit

P.S。:我使用Unix(os x)。

1 个答案:

答案 0 :(得分:1)

INT 10h是BIOS提供的实模式中断,只能在DOS或引导加载程序等实模式操作系统中使用,但不能在Linux中使用。对于Linux,您必须使用INT 80h来访问低级功能。

您应该能够打印ANSI转义码,将文本放在具有ANSI支持的终端屏幕上的任何位置:https://en.wikipedia.org/wiki/ANSI_escape_code