dos汇编总结

前言:

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

要点:

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

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

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

1.通用寄存器 ax,bx,cx(和loop绑定),dx

  1. 输入输出寄存器:al (输入字符到的寄存器),dl输出字符到的寄存器

  2. 指令寄存器:ah(用于输入指令的寄存器,如输入1为输入,2为输出,4ch为结束),

dos 复制代码
START:
MOV AH,1
INT 21H

CMP AL,'A'
JL A1
CMP AL,'Z'
JG A1

ADD 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一般连用。

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

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

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

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

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

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

在汇编语言中,加上 "h"

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

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

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

输出A-Z 26个字母

bash 复制代码
START:
    ; 初始化循环计数器 CX
    mov cx, 26
    mov dl,'A'

loop_start:
    ; 在这里放置循环体的代码
    
    ;输出字符
    int 21h
    ;加1
    add dl,1

    ; 递减循环计数器 CX
    loop loop_start

    ; 循环结束

    ; 退出程序
    mov ah, 4Ch
    int 21h
相关推荐
2601_962296513 天前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
Freak嵌入式3 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
kyle~9 天前
x86 汇编LOCK前缀 --- 硬件架构向软件提供的核心同步原语
汇编·c++·性能优化·硬件架构·实时系统
典典分享指南9 天前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
极客互动API14 天前
企业微信 iPad 协议服务搭建与 AI 回调实战
网络·汇编·人工智能·微信·企业微信·ipad
wechatbot88820 天前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa
祈禾25 天前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
水饺编程1 个月前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
iCxhust1 个月前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
·薯条大王1 个月前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python