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 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容