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与内存进行数据交互的方式如下:

从内存取信息
CPU处理
写回内容

汇编代码,也应该遵守这样的方式,因为汇编语言与机器语言是一一对应关系

按照这个流程,能够完整写出汇编代码,而不是丢下一些东西,非常容易丢掉数据写回这一步骤。

mov al,[si][bx]  ; 读取
and al,0DFh      ; 处理
mov [si][bx],al  ; 写回

4 高维压制:用C语言思维思考

使用C语言,思考问题,写出程序,然后查看汇编代码。

5 放宽心态:汇编语言能看懂即可

这个世界基本上不太需要汇编程序员,需求量也非常小,因此,能够看懂汇编语言,并且分析问题,解决问题即可,你完全没有必要花费时间去思考汇编程序怎么写,汇编语言的时代已经终结了

【汇编语言】汇编语言如何编程,如何避免出错相关推荐

  1. siliconc8051f Silicon C8051F编程器使用出错解决办法

    siliconc8051f Silicon C8051F编程器使用出错解决办法 1.根据下图先选择接口类型,通过usb连接电脑就选USB系列,同理选RS232系列. 2.载入要烧录的hex文件 3. ...

  2. 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?

    硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...

  3. 嵌入式c语言汇编混合编程,嵌入式C语言和汇编语言的混合编程

    此文章简单介绍 单片机 C语言和汇编语言混合编程的例子.主要用单片机汇编语言编写DS1302的底层驱动,在C语言里通过调用汇编语言,从而实现C和汇编的混合编程. ;汇编语言源文件 ;========= ...

  4. c51 嵌入 汇编语言,单片机代码编程时如何嵌入汇编语言

    有一次有读者提问,想从C51单片机转入stm8单片机来学习,那么进行软件编程时能不能使用汇编呢?小编本文就简要介绍下如何使用C语言编程嵌入汇编语言. stm8单片机编译有两种嵌入汇编指令的方法.第一种 ...

  5. ARM中C语言和汇编语言的混合编程

    1.内联汇编 在C语言中内嵌汇编注意事项: 不能直接向PC寄存器赋值,程序跳转要使用B或者BL指令在使用物理寄存器时,不要使用过于复杂的C表达式,避免物理寄存器冲突R12和R13可能被编译器用来存放中 ...

  6. 汇编语言实验 3 编程、编译、连接、跟踪

    实验内容 (1)第1步,编写汇编源程序t1.asm, 源程序代码如下: assume cs:code code segment mov ah,2 mov dl,3 add dl,30h int 21h ...

  7. c 控制 汇编语言,C 和 汇编语言的混合编程(实时控制TLC1549的实现)

    //主程序 #include"LCD12864.h" //精度要根据你的基准电压/1024来计算出来!要注意 #define TLCPER 0.00421 uchar code T ...

  8. 物联网中C语言与汇编语言,ARM Cortex-M架构CPU中C语言和汇编语言的混合编程

    这里主要从3个方面讲一下C和汇编的混合编程,包括相互之间的函数调用 1 汇编代码中调用C函数 在汇编中调用C的函数,需要在汇编中IMPORT 对应的C函数名,然后将C的代码放在一个C文件中进行编译 我 ...

  9. 学c语言一定要学汇编语言,汇编语言真的没必要学了吗!

    汇编语言可以说是所有语言的鼻祖,除了直接操作计算机的0/1之外,汇编语言是最接近于机器底层的语言了.现如今出现了各种各样的高级语言,如Python.Java.C#等等,使得程序员编程的效率得到质的飞跃 ...

  10. 常用计算机汇编语言,汇编语言中的各种寄存器介绍

    汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或 ...

最新文章

  1. ns-3 NetAnim遇到了一个问题
  2. 每一种创伤,都是一种成熟
  3. android用什么测试类,android – 使用firebase对类进行JUnit测试
  4. oracle linux 双机,oracleforlinux双机热备实战完全手册
  5. 利用python爬虫(案例6+part14)--如何爬取科研数据
  6. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
  7. 计算机硬盘共享配额,Win10磁盘配额是什么,怎么用?
  8. 类与对象的关系 java 1615134802
  9. JVM内存划分、Linux用户态、内核态简介
  10. c# asp.net RangeValidator(范围验证)控件(11)
  11. ubuntu下mysql数据库存储路径修改
  12. 安装python报错
  13. 十岁陌陌更名“挚文集团”的战略新时代|财报解读
  14. 随机排列算法(Fisher-Yates)
  15. c语言实现费诺编码csdn,香农编码 哈夫曼编码 费诺编码的比较
  16. 牛客高级项目课(仿牛客网)笔记
  17. 15b万用表怎么测电容_FLUKE-15B+型数字万用表操作规程
  18. 5G高铁隧道覆盖方式分析
  19. case when then else end 语句遇上sum或count等统计函数的注意事项(列转行)
  20. ImageMagick将多张图片拼接成一张图片_word转存技巧:如何将每页文档转换为图片保存?...

热门文章

  1. 站长工具--IP地址库
  2. 单元测试中Assert类的用法
  3. Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本
  4. [LeetCode]Find Minimum in Rotated Sorted Array
  5. 如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter...
  6. Javascript之创建对象(原型模式)
  7. 我的处女作《设计模式之禅》——前言
  8. Asp.net页面事件引发后台程序处理原理【转】
  9. 如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?
  10. 小学计算机课5年级第一课,人教版(2015)小学信息技术 五年级下册 第1课 录制声音真轻松 教案...