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

dos汇编总结

前言:

计组课本需要学习汇编,可惜自己看不太懂。这里发现一个学习方法交给大家。其实新手可能一些抽象表示难理解,这里我把我学习的疑问点以及思路记录一下。

要点:

这里我以题为例给大家分析

  1. 输出输入对应大写字母的小写字母

我们需要简单知道常用寄存器的作用。

1.通用寄存器 ax,bx,cx(和loop绑定),dx
2. 输入输出寄存器:al (输入字符到的寄存器),dl输出字符到的寄存器
3. 指令寄存器:ah(用于输入指令的寄存器,如输入1为输入,2为输出,4ch为结束),

START:
MOV AH,1
INT 21HCMP AL,'A'
JL A1
CMP AL,'Z'
JG A1ADD AL,32
MOV DL,AL
MOV AH,2
INT 21H
A1:; 退出程序MOV AH, 4Ch       ; AH=4Ch 表示程序退出INT 21H           ; 调用 DOS 中断 21H 退出程序
  1. 首先我们需要输入字符,输入的字符默认在AL寄存器中
  2. 然后我们进行比较,如果输入的值小于A的对应Ascii值或者大于z的值就跳转到结束标志位。
  3. COP 接两个数,后面接比较调节,可以实现条件转移,就是c语言中的if语句。
  4. A1是自定义的标志位,相当于c语言中的函数。这里我定义了一个退出程序的语句。
  5. int21,中断信号,相当于执行操作的必要流程。
  6. Ah寄存器的作用,存入1代表输入,存入2代表输出。这个相当于一个调用系统功能的寄存器,和 INT 21一般连用。

1. 为什么汇编数字后要加h?

在汇编语言中,添加 “h” 后缀通常用于表示一个十六进制数。在汇编语言中,常用的数值表示法包括:

十进制表示法:例如,10 表示十进制整数。

十六进制表示法:在数值后面添加 “h” 后缀,例如,10h 表示十六进制整数,相当于十进制的16。

二进制表示法:在数值前面添加 “0b” 或 “0B” 前缀,例如,0b101 表示二进制整数,相当于十进制的5。

八进制表示法:在数值前面添加 “0” 前缀,例如,010 表示八进制整数,相当于十进制的8。

在汇编语言中,加上 “h”
后缀可以帮助编程人员清楚地知道一个值是以十六进制表示的,而不是十进制或其他进制。这种表示法的使用可以提高代码的可读性,特别是在处理内存地址、寄存器值和其他底层硬件相关的数值时。在大多数汇编语言中,编译器或汇编器可以根据上下文来确定数值的进制,但明确指定进制可以减少歧义。

例如,10h 表示一个十六进制数,而 10 可能表示一个十进制数。这种约定有助于程序员正确理解和处理数据。

那么基础知识知道了,可以写一个变体题

输出A-Z 26个字母

START:; 初始化循环计数器 CXmov cx, 26mov dl,'A'loop_start:; 在这里放置循环体的代码;输出字符int 21h;加1add dl,1; 递减循环计数器 CXloop loop_start; 循环结束; 退出程序mov ah, 4Chint 21h
http://www.lryc.cn/news/154907.html

相关文章:

  • 四川玖璨电子商务有限公司:短视频有什么运营
  • 混合查询多家快递,快速掌握物流信息
  • 独立站新手引流,谷歌SEO工具汇总
  • SpringMvc 与 Lombok 碰撞导致 JSON 反序列化失败
  • 怎么样显卡叠加,什么是NVIDIA 显卡 非公、公版、涡轮卡
  • CentOS安装Elasticsearch集群
  • 计算机专业毕业生指南
  • Springboot集成Docker并将镜像推送linux服务器
  • 数字孪生与GIS:智慧城市的未来之路
  • nas汇编程序的调试排错方法
  • 【网络安全带你练爬虫-100练】第21练:批量获取文件夹中文件名
  • Unittest自动化测试框架vs Pytest自动化测试框架
  • PHP8的数组-PHP8知识详解
  • 数据仓库_维度表的两大分类
  • 4、DVWA——文件包含
  • 产品经理如何进行需求管理
  • 【从0学习Solidity】2. 值类型详解
  • 框架分析(9)-Hibernate
  • JavaScript中的原型链(prototype chain)
  • 设计模式之代理模式与外观模式
  • 动手学深度学习(四)多层感知机
  • 融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略
  • 生成式人工智能促使社会转变
  • 【STM32】SPI初步使用 读写FLASH W25Q64
  • javaScript:DOM(父子/兄弟)常用属性
  • 笔记:linux中LED(GPIO)驱动设备树配置和用法
  • 能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代
  • 垃圾回收 - 复制算法
  • 基于SpringMVC实现常见功能
  • MetInfo5.0文件包含漏洞