完整汇编程序

1.

assume cs:code

code segment

    mov ax, 1122h
    mov bx, 3344h
    add ax, bx
    
    ;下边这两句正常退出程序
    mov ah, 4ch (或者mov ax, 4c00h)
    int 21h

code ends

end
    

2.中断

  • 常见的中断
    • int 10h 用于执行BIOS中断
    • int3 是“断点中断”,用于调试程序
    • int 21h 用于执行DOS系统功能调用,AH寄存器存储功能号
      执行系统功能需要传递参数
      eg:
      mov ax, 4c00h  ;传递参数
      int 21h
      

3.打印Hello World!

assume cs:code, ds:data ;提醒开发者每个段的含义(伪代码)

;--------数据段 begin--------
data segment
    age db 20h
    no dw 30h
    db 10 dup(6)  ;生成10个连续的6
    string db 'Hello World!$' ;$代表结束
data ends
;--------数据段 end----------
code segment
start:
    ;手动设置ds的值
    mov ax, data
    mov ds, ax
    
    mov ax, no
    mov bl, age
    
    ;打印
    mov dx, offset string ;也可以替换为 mov dx, 13(因为H的偏移地址是13)
    ;offset string代表string的偏移地址
    mov ah, 9h
    int 21h
    ;退出
    mov ax, 4c00h
    int 21h
code ends
;----------代码段 end-----------
;编译结束,start是程序入口
;start所在的段就是代码段
;相当于cs的值已经自动设置完毕
end start
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容