当前位置: 首页 > news >正文

4.1 用源文件写汇编代码

汇编语言

1. 源程序

1.1 伪指令

  • 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行
  • 伪指令没有对应的机器指令,最终不被CPU所执行
  • 伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作

1.2 段(segment)

  • 一个段必须有一个名称来标识
  • 使用格式为:
段名 segment
.
.
.
段名 ends
  • 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当做栈空间来使用
  • 一个源程序中所有将被计算机处理的信息:指令、数据、栈,被划分到了不同的段中

1.3 end

  • end是一个汇编程序的结束标记
  • 编译器在编译汇编程序的过程中,碰到了end,就结束对源程序的编译
  • 注意不要搞混end和ends,ends是和segment成对使用的,标记一个段的结束,ends的含义可以理解为end segment
  • 我们这里的end的作用是标记整个程序的结束

1.4 assume

  • 这条伪指令的含义为“假设”。它假设某一段寄存器和程序中的某一个用segment…ends定义的段相关联
  • 以后记着用assume将有特定用途的段和相关的段寄存器关联起来即可

2. 用源文件写汇编代码

2.1 编写汇编代码

  • 首先在masm文件夹内创建一个txt文件,并且编写汇编代码
assume cs:codesgcodesg segmentmov ax,0123hmov bx,0456hadd ax,bxadd ax,axmov ax,4c00hint 21h  //退出程序代码codesg ends  //代表段结束end  //整个程序结束

image.png

2.2 更改文件后缀

  • 把txt后缀改为asm,以便编译器能够识别到

image.png

2.3 编译文件

  • 打开DOSBox,输入dir,然后再输入masm 文件名,编译该文件并且生成obj文件
mount c d:masm
c:
dir
masm
code

image.png

image.png

image.png

  • 生成.obj文件,完成编译

2.4 链接文件

link
code

image.png

image.png

  • 生成.exe文件,完成链接

2.5 执行文件

  • 在debug下执行
debug code.exe  //注意这里要加文件后缀名
r
t
t
t

image.png

http://www.lryc.cn/news/322592.html

相关文章:

  • Linux TCP参数——tcp_abort_on_overflow
  • jupyter notebook设置代码提示方法
  • Linux 一点查询资料
  • 如何快速搭建一个完整的vue2+element-ui的项目-二
  • 多语言LLM的状态:超越英语
  • kafka什么情况下会认为发送失败进而去重试
  • 不满足软件包要求‘transformers==4.30.2‘, ‘sse-starlette
  • C# 设置AutoScroll为true没效果的原因分析和解决办法
  • <Senior High School Math>: inequality question
  • 详解Python中Pytest和Unittest的区别
  • 零基础入门多媒体音频(1)-音频基础
  • 40 道高频 C++ 面试、笔试题及答案
  • 【07】进阶html5
  • Linux|centos7|postgresql数据库|yum和编译方式安装总结(全系版本)
  • C++提高笔记(五)---STL容器(set/multiset、map/multimap)
  • 详解main函数参数argc、argv及如何传参
  • 解释什么是Web组件化开发及其优势
  • 那些场景需要额外注意线程安全问题
  • (C语言)球球大作战
  • 高级数据结构 <AVL树>
  • 在springboot中利用Redis实现延迟队列
  • UpGrow评论:AI能将我的Instagram粉丝数增加10倍吗?
  • 申请软著提交的演示视频有什么要求
  • mac【启动elasticsearch报错:can not run elasticsearch as root
  • 面试算法-65-二叉树的层平均值
  • Linux: boot: latency启动延迟分析
  • QT界面制作
  • 进阶二叉树
  • 无人机拦截
  • CSDN 编辑器设置图片缩放和居中