将在屏幕上打印字符串的功能分装为函数。便于今后使用。 ;helloworld.asm
org 07c00h ;setup stack.setup stack at most top of 640K start: mov ax, 0x0FC0 mov ss, ax mov ax, 0x0400 mov sp, ax
mov bx, msg1 push bx call dumpstr pop bx jmp $ dumpstr: ;backup used registor push ax push bx push cx push dx push bp ;get parameter mov bp, sp add bp, 12 mov bx, [bp] ;calculator string length xor cx, cx strlop: mov ax, [bx] cmp ax, 0x0 jz calend inc cx inc bx jmp strlop calend: push cx mov ah, 0x03 xor bh, bh int 0x10 pop cx mov bx, 0x0007 push bp mov bp, [bp] mov ax, 0x1301 int 0x10 pop bp ;restore registor pop bp pop dx pop cx pop bx pop ax ret msg1: DB 13, 10 DB 'Hello World' DB 13, 10, 13, 10
times 510-($-$$) db 0 dw 0aa55h 
|