8086汇编 - HelloWorld

  • 第一种
assume cs:code, ds:data   

;------ 数据段 ------
data segment       
    string db 'Hello World!$'
data ends

;------ 代码段 ------
code segment 
start:  
    mov ax, data
    mov ds, ax

    mov ah, 9h
    mov dx, offset string
    int 21h

    mov ah, 4ch ; mov ax, 4c00h
    int 21h                
code ends
    end start 
  • 第二种
assume cs:code, ds:data   

;------ 数据段 ------
data segment       
    db "Hello World!",0
data ends

;------ 代码段 ------
code segment 
start:  
    mov ax, data
    mov ds, ax      
    
    mov ax, 0b800h  ;显存缓冲区的段地址
    mov es, ax
    
    mov bx, 0
    mov si, 0
    mov ch, 0
    
print:
    mov cl, ds:[si] ;取出一个字符
    jcxz exit   ;如果cx为0,就直接退出程序
    
    mov es:[bx], cl ;拷贝字符到显存缓存区
    mov es:[bx+1], 11101111b    ;显示的属性:红底白字
    
    inc si
    add bx, 2
    loop print
            
exit:
    mov ah, 4ch
    int 21h                
code ends
    end start 
  • 第三种
assume cs:code, ds:data   

;------ 数据段 ------
data segment       
    db "Hello World!",1
data ends

;------ 代码段 ------
code segment 
start:  
    mov ax, data
    mov ds, ax      
    
    mov ax, 0b800h  ;显存缓冲区的段地址
    mov es, ax
    
    mov bx, 0
    mov si, 0
    mov ch, 0
    
print:
    mov al, ds:[si] ;取出一个字符
    mov es:[bx], al ;拷贝字符到显存缓存区
    mov es:[bx+1], 11001111b    ;显示的属性:红底白字
    
    inc si
    add bx, 2
    mov cl, ds:[si] ;取出下一个字符
    loop print

    mov ah, 4ch
    int 21h                
code ends
    end start 

你可能感兴趣的:(8086汇编 - HelloWorld)