【汇编语言】汇编语言如何编程,如何避免出错
0 前言
这里以8086汇编语言举例。
1 重要方法:画流程图
这一点不再多说!你懂的!只要真的画流程图,并且按此翻译为汇编代码,程序出错几率就会减少很多。
2 框架思维:构建标准编程框架
这里只举例说明一部分框架,具体内容请读者自行完善。
2.1 程序框架
; 数据段
assume ds:data
data segment<数据>data ends; 堆栈段
assume ss:stack
stack segment<堆栈>stack ends; 代码段
assume cs:code
code segment
start:<代码>mov ax,04c00hint 21h
code ends
end start
2.2 单循环框架
mov cx,<循环次数>
s:<代码>
loop s
通常,代码中会包含add bx,<增加数目> 这样的内容。
2.3 双重循环框架
mov cx,<外循环次数>
s0:mov dx,cx ;暂存外循环次数<外循环内容>mov cx,<内循环次数>s1:<内循环内容>loop s1<外循环内容>mov cx,dx
loop s0
3 硬件思维:理解内存与CPU的交互
CPU与内存进行数据交互的方式如下:
汇编代码,也应该遵守这样的方式,因为汇编语言与机器语言是一一对应关系。
按照这个流程,能够完整写出汇编代码,而不是丢下一些东西,非常容易丢掉数据写回这一步骤。
mov al,[si][bx] ; 读取
and al,0DFh ; 处理
mov [si][bx],al ; 写回
4 高维压制:用C语言思维思考
使用C语言,思考问题,写出程序,然后查看汇编代码。
5 放宽心态:汇编语言能看懂即可
这个世界基本上不太需要汇编程序员,需求量也非常小,因此,能够看懂汇编语言,并且分析问题,解决问题即可,你完全没有必要花费时间去思考汇编程序怎么写,汇编语言的时代已经终结了。
【汇编语言】汇编语言如何编程,如何避免出错相关推荐
- siliconc8051f Silicon C8051F编程器使用出错解决办法
siliconc8051f Silicon C8051F编程器使用出错解决办法 1.根据下图先选择接口类型,通过usb连接电脑就选USB系列,同理选RS232系列. 2.载入要烧录的hex文件 3. ...
- 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?
硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...
- 嵌入式c语言汇编混合编程,嵌入式C语言和汇编语言的混合编程
此文章简单介绍 单片机 C语言和汇编语言混合编程的例子.主要用单片机汇编语言编写DS1302的底层驱动,在C语言里通过调用汇编语言,从而实现C和汇编的混合编程. ;汇编语言源文件 ;========= ...
- c51 嵌入 汇编语言,单片机代码编程时如何嵌入汇编语言
有一次有读者提问,想从C51单片机转入stm8单片机来学习,那么进行软件编程时能不能使用汇编呢?小编本文就简要介绍下如何使用C语言编程嵌入汇编语言. stm8单片机编译有两种嵌入汇编指令的方法.第一种 ...
- ARM中C语言和汇编语言的混合编程
1.内联汇编 在C语言中内嵌汇编注意事项: 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令在使用物理寄存器时,不要使用过于复杂的C表达式,避免物理寄存器冲突R12和R13可能被编译器用来存放中 ...
- 汇编语言实验 3 编程、编译、连接、跟踪
实验内容 (1)第1步,编写汇编源程序t1.asm, 源程序代码如下: assume cs:code code segment mov ah,2 mov dl,3 add dl,30h int 21h ...
- c 控制 汇编语言,C 和 汇编语言的混合编程(实时控制TLC1549的实现)
//主程序 #include"LCD12864.h" //精度要根据你的基准电压/1024来计算出来!要注意 #define TLCPER 0.00421 uchar code T ...
- 物联网中C语言与汇编语言,ARM Cortex-M架构CPU中C语言和汇编语言的混合编程
这里主要从3个方面讲一下C和汇编的混合编程,包括相互之间的函数调用 1 汇编代码中调用C函数 在汇编中调用C的函数,需要在汇编中IMPORT 对应的C函数名,然后将C的代码放在一个C文件中进行编译 我 ...
- 学c语言一定要学汇编语言,汇编语言真的没必要学了吗!
汇编语言可以说是所有语言的鼻祖,除了直接操作计算机的0/1之外,汇编语言是最接近于机器底层的语言了.现如今出现了各种各样的高级语言,如Python.Java.C#等等,使得程序员编程的效率得到质的飞跃 ...
- 常用计算机汇编语言,汇编语言中的各种寄存器介绍
汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或 ...
最新文章
- ns-3 NetAnim遇到了一个问题
- 每一种创伤,都是一种成熟
- android用什么测试类,android – 使用firebase对类进行JUnit测试
- oracle linux 双机,oracleforlinux双机热备实战完全手册
- 利用python爬虫(案例6+part14)--如何爬取科研数据
- java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
- 计算机硬盘共享配额,Win10磁盘配额是什么,怎么用?
- 类与对象的关系 java 1615134802
- JVM内存划分、Linux用户态、内核态简介
- c# asp.net RangeValidator(范围验证)控件(11)
- ubuntu下mysql数据库存储路径修改
- 安装python报错
- 十岁陌陌更名“挚文集团”的战略新时代|财报解读
- 随机排列算法(Fisher-Yates)
- c语言实现费诺编码csdn,香农编码 哈夫曼编码 费诺编码的比较
- 牛客高级项目课(仿牛客网)笔记
- 15b万用表怎么测电容_FLUKE-15B+型数字万用表操作规程
- 5G高铁隧道覆盖方式分析
- case when then else end 语句遇上sum或count等统计函数的注意事项(列转行)
- ImageMagick将多张图片拼接成一张图片_word转存技巧:如何将每页文档转换为图片保存?...
热门文章
- 站长工具--IP地址库
- 单元测试中Assert类的用法
- Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本
- [LeetCode]Find Minimum in Rotated Sorted Array
- 如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter...
- Javascript之创建对象(原型模式)
- 我的处女作《设计模式之禅》——前言
- Asp.net页面事件引发后台程序处理原理【转】
- 如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?
- 小学计算机课5年级第一课,人教版(2015)小学信息技术 五年级下册 第1课 录制声音真轻松 教案...