第一个汇编程序hello world

2024-05-31 00:38

本文主要是介绍第一个汇编程序hello world,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        近来,看了看以下汇编视频,终于学了第一个汇编程序—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为例,要把字符挨个拷贝到显存地址空间才能显示字符,因此要使用循环语句;在赋值是不能像平常语言一样直接赋值,很多时候需要把值和数据传给通用寄存器,然后再通过通用寄存器传给其它特定寄存器。


这篇关于第一个汇编程序hello world的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017150

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

使用gradle做第一个java项目

涉及到的任务如下: assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。 Total time: 5.581 secs E:\workspace\Test>gradle assemble :compileJava :processResources UP-TO-DATE :classes :findMainClass :jar :b

vue2实践:第一个非正规的自定义组件-动态表单对话框

前言 vue一个很重要的概念就是组件,作为一个没有经历过前几代前端开发的我来说,不太能理解它所带来的“进步”,但是,将它与后端c++、java类比,我感觉,组件就像是这些语言中的类和对象的概念,通过封装好的组件(类),可以通过挂载的方式,非常方便的调用其提供的功能,而不必重新写一遍实现逻辑。 我们常用的element UI就是由饿了么所提供的组件库,但是在项目开发中,我们可能还需要额外地定义一

SpringMVC的第一个案例 Helloword 步骤

第一步:web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati

【Spring boot】编写代码及测试用例入门之 Hello Spring boot _踩坑记

先贴下目录: 这是我从 start.spring.io 里下载的依赖Web的模板 // DemoApplication.javapackage com.abloume.springboot.blog.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autocon

【JFinal】IDEA+maven上手JFinal之Hello World!

一、New Project 1、在 IDEA 环境下新建 Project 项目 2、选择创建 Maven 项目,并且不使用模板 3、输入 Maven 的 GroupId 和 ArtifactId 4、输入项目名称 二、将当前 Project 改为 POM 工程 将项目的 jfinal-web-demo 作为项目的 parent 工程,用于定义 maven 依赖包的版本信息、

我的第一次份实习工作-iOS实习生-第一个月

实习时间:2015-08-20 到 2015-12-25  实习公司;福建天棣互联有限公司 实习岗位:iOS开发实习生 第一个月: 第一天来公司,前台报道后,人资带我去我工作的地方。到了那,就由一个组长带我,当时还没有我的办公桌,组长在第三排给我找了一个位置,擦了下桌子,把旁边的准备的电脑帮我装了下,因为学的是iOS,实习生就只能用黑苹果了,这是我实习用的电脑。 帮我装了一下电脑后,开机

从零开始:打造你的第一个餐厅点餐小程序

目录 1 为什么选择点餐小程序2 会有哪些功能2.1 顾客端2.2 服务员端2.3 后厨端2.4 收银端2.5 管理员(老板)端 3 开发工具选择4 你将获得什么让我们开始吧 最近,有不少粉丝咨询,有没有系统的低代码学习教程呀?为啥你的教程有的刚看的提起兴趣,怎么突然就中断了。有没有系统的视频学习教程呀,你是不是还有压箱底的好宝贝,没开放给我们看呀。 还真不是,压箱底的好宝贝已