第一个汇编程序hello world

2023-11-12

        近来,看了看以下汇编视频,终于学了第一个汇编程序—hello world,下面分享以下程序的各部分代码和注释,希望大家有所帮助。

程序源码如下:

assume cs:code,ds:data ;定义代码段和数据段框架


data segment  ;数据段
msg db "hello world";定义字符串
data ends


code segment  ;代码段
start: 
    mov ax,data
    mov ds,ax   ;数据段初始化


    mov bx,0b800h ;将b800h地址空间拷贝到es段寄存器中
    mov es,bx         ;b800h/数据不能直接拷贝到es中,用通用寄存器bs转移给es
    mov cx,11         ;将11赋给cs通用寄存器--字符串循环11次
    mov ah,01000010b  ;字符属性红底绿字


    mov si,0
    mov bx,0 ;初始化
      s:mov al,ds:[si]     ;s:loop循环标号
    mov es:[bx],al         ;es,ds 获取第一个字符地址,字符地址=段地址+偏移地址
    mov es:[bx+1],ah    ;字符后面紧接字符属性
    inc si                       ;使ax 每次加1
    add bx,2                  ;每次bx加2
    loop s                      ;循环结束
    
    mov ax,4c00h          ;防止一闪而过
    int 21h 
    
code ends
end start



以下是运行结果:



感悟:汇编写程序似乎有点难度,首先得知道很多寄存器,然后要知道如何使用寄存器,然后才能开工啊!就拿hello world为例,要把字符挨个拷贝到显存地址空间才能显示字符,因此要使用循环语句;在赋值是不能像平常语言一样直接赋值,很多时候需要把值和数据传给通用寄存器,然后再通过通用寄存器传给其它特定寄存器。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第一个汇编程序hello world 的相关文章

  • win10 64位 Compaq Visual Fortran(CVF)安装教程

    最近需要调试下fortran程序 它是fortran与c混编的 因此simply Fortran还不能满足需求 IVF还会涉及版本兼容与移植的问题更不想用 于是上网搜了下关于安装CVF的资料 发现似乎CVF的安装并不容易 甚至还有说不能安装
  • 字符编码和字符集

    编码和解码 按照某种规则 将字符存储到计算机中 称为 编码 那么 将计算机中的二进制数据按照某种规则解析显示出来 称为 解码 字符编码 就是一套自然语言的字符和二进制数据之间的对应规则 把这种对应规则 写成一张表 就是 编码表 也叫字符集
  • java中正则表达式的基本使用

    正则表达式的常用语法 正则在线检验 http tool chinaz com regex 更多地语法可以参考jdk api中的Pattern类 http tool oschina net apidocs apidoc api jdk zh
  • 配置nginx安装信息时报错 ./configure: error: the HTTP rewrite module requires the PCRE library.You can..... 处理

    出现错误过程 Linux终端运行nginx配置信息 运行后 发现最后一行需要修改 configure prefix usr local nginx pid path var run nginx nginx pid lock path var
  • 趣味面试题

    趣味面试题集锦 最近看了不少关于求职面试的试题 在其中发现了不少有意思的题目 特整理后发表上来与大家一起分享 为了方便与以后添加的题目区别 每次更新会以 A B 的方式标注 A 1 如何将 a b 的值进行交换 并且不使用任何中间变量 解析
  • 阿里云服务器搭建hadoop2.7伪分布式环境

    零 写在前面 服务器 centos7 6 jdk1 8 hadoop2 7 这个其实没有什么影响 都可以参照这个教程进行搭建 一 防火墙设置 停止防火墙 systemctl stop firewalld service 禁止防火墙开机自启动
  • rest以及restful的基本理解

    传统下的API接口 http是目前在互联网上使用最多的协议 没有之一 可是http的创始人一直都觉得 在过去10几年来 所有的人都在错误的使用Http 这句话怎么说呢 如果说你要删除一个数据 以往的做法通常是 delete id 如果你要更
  • 上岸了,不写代码了

    上岸了 目前不搞这些东西了 不出意外的话应该不会再回来更新和回复了 各位 江湖再见
  • Chrome 浏览器的 PDF 插件使用了 Foxit PDF SDK

    Chrome 浏览器的 PDF 插件使用了 Foxit PDF SDK 2010年8月22日 Chrome的内置PDF插件实际上有使用Foxit的PDF SDK 如果你查看这个网页会找到Chromium的一些PDF功能多次用到Foxit的S
  • 多层目录编译的makefile文件编写

    一直想自己做一个目录结构稍复杂一点的makefile 看make的manual上写的有点不好理解 再从网上搜搜也没有发现比较好的教程 我是个搞工程的 懂点计算 也没有受过专业编程训练 对于一些技术不是很懂 有时想使用也会不知到如何下手 找不
  • GitHub中公私钥的配置

    一 生成新 SSH 密钥 1 打开 git 的命令行窗口 即 Git Bash 2 粘贴下面的文本 替换为你的 GitHub 电子邮件地址 GitHub 中生成新的 SSH 密钥 ssh keygen t ed25519 C your em
  • 关于选择FFmpeg的“git master build”还是“release build”

    小问题 写下来备忘 之前在 使用FFmpeg合并 解密 下载m3u8文件转为mp4格式 当中 以及在 可以提高DeepFaceLab DeepFake 合成最终视频速度的方法 当中 都提到了FFmpeg 大家都在用的非常好的工具 我是从官方
  • 油猴(Tampermonkey)安装教程

    油猴简介 Tampermonkey 油猴 是一款免费的浏览器扩展和最为流行的用户脚本管理器 它适用于 Chrome Microsoft Edge Safari Opera Next 和 Firefox 虽然有些受支持的浏览器拥有原生的用户脚
  • 双系统安装Windows和Linux(CentOS7)

    讲在前面的话 判断磁盘分区格式 判断计算机启动方式 制作USB安装盘 开始安装CentOS7 Linux系统分区 安装完毕 磁盘转换mbr 或者gpt 格式 VMware虚拟机安装Linux 网络如何配置 参考 计算机系统启动项引导设置 双
  • 信息安全导论复习题

    一 判断题 在本题的每一小题的括号中 正确的填入 错误的填入 每题 2 分 1 F 网络软件的漏洞和 后门 没有区别 2 F 网络物理威胁中的身份识别错误与身份鉴别威胁具有相同的意义 3 T 电子窃听不一定要把窃听设备安装在线路上 4 F
  • 本地部署你的专属ChatGPT,不用想方设法翻墙了

    自ChatGPT问世以来 由于安全问题ChatGTP始终没有在国内提供服务 那访问ChatGTP有条件的就通过专线到国外进行访问 没条件的但喜欢折腾的可以通过各种野路子科学上网 没条件不喜欢折腾的听听就行 无意间在gitHub上发现了一个开
  • jsp的基本认识与理解

    简介 JSP全称是JavaServer Pages 它和servlet技术一样 都是SUN公司定义的一种用于开发动态web资源的技术 JSP这门技术的最大的特点在于 写jsp就像在写html 但 它相比html而言 html只能为用户提供静
  • CPU : 什么是双核处理器

    CPU 什么是双核处理器 双核处理器 Dual Core Processor 双核处理器是指在一个处理器上集成两个运算核心 从而提高计算能力 双核 的概念最早是由IBM HP Sun等支持RISC架构的高端服务器厂商提出的 主要运用于服务器
  • Apache/Tomcat/JBOSS/Jetty/Nginx区别 与选择

    总结 Apache Tomcat JBOSS Nginx区别 1 Apache是Web服务器 Tomcat是应用 Java 服务器 Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用 Apache支持静态页 Tomcat支持动
  • HttpUtils——助力高效网络通信

    使用HttpClient发送请求 接收响应很简单 一般需要如下几步即可 1 创建HttpClient对象 2 创建请求方法的实例 并指定请求URL 如果需要发送GET请求 创建HttpGet对象 如果需要发送POST请求 创建HttpPos

随机推荐

  • git:一次回滚多个commit

    说明 独立分散的commit共同回滚 git revert n sha 1 git 单次commit对应的sha 1值 sha 1 sha 1 ps n代表不会生成新的commit 如果想直接生成commit请去掉 n 最近连续的coomi
  • hr谈薪资后说请示领导_如何巧妙回答面试中的薪资问题呢?

    好不容易挺过了群面 单面 没想到在HR面被薪资问题打个措手不及 你的期望薪资是多少 说低了总觉得委屈自己 说高了又怕offer不保 好不容易在前面几轮面试积攒的自信 在这个问题上就变成 emm差不多就行吧 然后面试一结束就开始无限后悔 对于
  • 【ML特征工程】第 1 章 :机器学习管道

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • STM32F407 单片机+DMA+环形缓冲区+GPS报文解析

    本文采用DMA 环形缓冲区对GPS报文进行解析 思路是通过DMA中断接收到GPS报文后 存放到环形缓冲区 然后在主程序中解析GPS报文 解析GPS报文的关键是 将环形缓冲区中的字节转换成字符串 然后在字符串中查找GPS报文头标识 例如 GP
  • Block头部解析

    Block解析介绍了Block的各个组成部分 魔法数 块大小 块头部 交易个数 交易 本文将详细介绍块魔法数和块头部的各个组成部分 魔法数 魔法数是比特币客户端解析Block数据时的识别码 比特币正式网络的魔法数是0xD9B4BEF9 不同
  • 地图标识符号大全_资源小结:分省地图查询(9.1版)

    公众号首页回复关键字 分省地图 或通过菜单栏可以快速找到本页 本页内容不断更新 建议收藏起来备查 北京市 北京市最新行政区划图 行政统计表 图集下载 北京市地图集 分区 北京市人文地图 高清版 北京经典旅游线路图 北京城区地图 一亿像素高清
  • vue3和ts使用

    Vue3和TypeScript是两个非常流行的前端技术 它们都有着自己的优点和特点 Vue3是Vue js的最新版本 它带来了很多新的特性和改进 包括更好的性能 更好的开发体验和更好的可维护性 TypeScript是一种静态类型语言 它可以
  • 一文搞懂STM32 PWM配置

    本文主要介绍通过CubeMX对STM32G070CBT6进行配置生成PWM波 内容包括PWM的基本概念 PWM的应用 PWM产生的方法 STM32 PWM波配置详解 1 PWM PWM 英文名Pulse Width Modulation 是
  • 02-不得不了解的js特性

    一 回顾js特性 针对浏览器端js 它有哪些特性 弱类型 解释型 1 弱类型 所谓强类型 就意味着在声明变量的时候 需要确定数据类型 一经确定就不能改变 而弱类型 在声明变量的时候 是无需声明变量的类型 变量的类型有其值来决定 并且是可以随
  • 使用pyecharts出现 'ModuleNotFoundError: No module named 'pyecharts_snapshot' 异常

    使用pyecharts时 出现 ModuleNotFoundError No module named pyecharts snapshot 试了几次都无法解决 突然想到 pyecharts snapshot 会不会也是一个第三方库 毕竟异
  • MySQL 列属性修改操作

    1 mysql中修改字段长度 sql view plain copy ALTER TABLE tb article MODIFY COLUMN NAME VARCHAR 50 这里的tb article为表名 NAME为字段名 50为修改后
  • Vue 组件的单元测试

    1 基本的示例 单元测试是软件开发非常基础的一部分 单元测试会封闭执行最小化单元的代码 使得添加新功能和追踪问题更容易 Vue 的单文件组件使得为组件撰写隔离的单元测试这件事更加直接 它会让你更有信心地开发新特性而不破坏现有的实现 并帮助其
  • [docker]笔记-网络管理

    1 docker网络原理 docker安装完成后 会在宿主机中创建一个虚拟网桥 用于容器之间和容器与外部网络的连接 虚拟网桥通常名称为docker0 可以使用ip link show命令进行查看 在docker中 各个容器是通过这个dock
  • 虚拟+现实

    随着现代信息技术与软硬件技术的快速发展 嵌入式系统的功能日益强大 嵌入式设备和软件应用领域越来越宽泛 近年来 嵌入式软件代码量呈爆炸式增长 对测试的要求越来越高 尤其是涉及防务 航空 汽车等安全关键领域 半实物仿真测试系统的研制难度适中 投
  • 合宙Air103

    基础资料 基于Air103开发板 Air103 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 对官方I2C demo中功能的复现 进行相关内容的学习及探讨 实现功能 功能2 三轴加速度陀螺仪 MPU6050模块 硬件准备
  • Typora+PicGo-Core上传服务设置

    一 Typora中安装PicGo Core 二 安装插件 Win10为例 首先点击验证图片上传选项根据提示找到安装路径 我的路径为C Users 86137 AppData Roaming Typora picgo win64 picgo
  • Qt5.14版本通用环境配置安装——最详细教学(看不懂,你怪我)

    大家好 我是会飞的鱼 blog 今天我来给大家介绍一下Qt5 14 1安装 有不足之处 请大家多多指教 感谢大家支持 目录 前言 安装文件下载 安装 设置 QtCreator 编译路径 设置 Qt 源码路径 以上就是全部安装步骤 已经完成
  • moxa串口服务器型号,moxa串口服务器产品配置说明

    moxa串口服务器产品配置说明 内容精选 换一换 为弹性云服务器配置的安全组规则未生效 以下排查思路根据原因的出现概率进行排序 建议您从高频率原因往低频率原因排查 从而帮助您快速找到问题的原因 如果解决完某个可能原因仍未解决问题 请继续排查
  • 实现一个Android锁屏App的难点总结

    http blog csdn net ldld1717 article details 69389125 https segmentfault com a 1190000007157971 自定义一个漂亮实用的锁屏app 如果能赢得用户的认
  • 第一个汇编程序hello world

    近来 看了看以下汇编视频 终于学了第一个汇编程序 hello world 下面分享以下程序的各部分代码和注释 希望大家有所帮助 程序源码如下 assume cs code ds data 定义代码段和数据段框架 data segment 数