汇编语言笔记(一):基础

本文介绍了汇编语言的基础知识,包括简单程序的编写、段的使用、字符串处理方法,详细讲解了如何利用bx, si, di, bp寄存器进行寻址,并探讨了不同的寻址方法和数据长度的指定。同时,文章还讨论了div指令的使用注意事项。" 107180146,5714955,Android酷炫图表库大盘点,"['Android开发', '图表组件', 'UI设计', '数据可视化', '开源项目']

章节目录

  1. 简单程序
  2. 使用段
  3. 简单字符串处理程序
  4. 使用 bx, si, di, bp 寄存器寻址
  5. 寻址方法
  6. 指明数据长度
  7. div指令

作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!

本文中所有程序均在DOSBox下使用MASM, LINK编译运行

简单程序

loop program

  • segment…ends: 伪指令, 用来定义一个段(比如,代码段,数据段,堆栈段), segment 标识一个段的开始, ends 标识一个段的结束.
  • 语法:
    SegmentName segment
    ..
    SegmentName ends

  • assume: 伪指令, 它假设某一段寄存器和程序中的某一个用 segment..ends 定义的段相关联.


  • mov ax, 4c00h
    int 21h

    称为程序返回,它的作用是将 CPU 的控制权交还给使他得以运行的程序.
  • 使用段

    using segments

    使用 assume 将我们定义的数据段,堆栈段,代码段和对应的段寄存器关联起来.

    cs 寄存器对应代码段
    ds 寄存器对应数据段
    ss 寄存器对应堆栈段

    值得注意, 我们在访问数据段或者堆栈段的时候,总是将段基址先保存在 ax 中,然后由 ax 保存到 ds 或者 ss. 为什么不直接将段基址保存到 ds 或者 ss 中? 答案是该操作非法.

    简单字符串处理程序

    这里写图片描述

    在这里, 我们使用 bx + offset 的语法访问数据段中的字符串. 相应的字符的地址计算方法为 addr=ds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值