汇编语言——第一个程序(基于8086CPU)

定义一个段

  • segment和ends是一对成对使用的伪指令
  • segment和ends用于定义一个段,segment说明段的开始,ends说明段的结束
  • end segment = ends
  • 一个段必须有一个名称来标识, 段名 segment 段名 ends
  • 一个汇编程序是由多个段组成,用来存放代码、数据或栈空间

end是一个汇编程序的结束标记

assume

  • 假设某一段寄存器和程序中某一个用segment。。。ends定义的段相关联。
  • assume cs:codeseg 代码段是codeseg
  • 在这里插入图片描述

标号

  • 一个标号指代一个地址,例如上文的codesg
  • start:代表程序入口 end start,这里的start是可以改的,关键是要和end后边保持一致。

程序的返回

  • 在程序末尾添加返回的程序段
mov ax, 4c00H
int 21H

以上指令实现的功能就是程序返回。

  • 如果没有返回,cpu的控制权没法从程序归还到操作系统中。

编译链接

  • masm pow.asm编译,可以在最后加上分号masm pow.asm;,生成pow.obj文件
  • 链接link pow.obj,同样可以在最后加上分号link pow.obj;,生成pow.exe可执行文件

编译:伪指令和汇编指令转化为机器指令

链接:多个源程序编译成目标文件后,可以连接在一起生成一个可执行文件。

  • 程序中调用了某个库文件的子程序,需要将这个库文件和该程序生成的目标文件连接起来,生成一个可执行文件。

DEBUG xxx.exe用debug执行程序

  • 将程序加载进内存
  • 在这里插入图片描述
  • t命令单步执行,最后int 21用p命令执行,但是我这个版本的debug不支持p命令,只能使用t命令而且也能正常退出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值