`
tcspecial
  • 浏览: 911333 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

汇编语言下的Hello world

阅读更多

      汇编dos窗口下的Hello world还是有点难度,非调用win32 api方式,折腾了半天,总算弄出来了.

 

方法一: 调用中断 

    HELLO.ASM:

assume cs:codesg,ds:datas

; str字符必须是13位,所以中间加了两个空格,网上很多代码也避开了这个问题,都是通过加空格,拼写错误,反正加个占位符
; 否则会输出一堆乱码,实在想不明白是什么原因
datas segment
str db 'Hello  World!','$'  
datas ends

codesg segment
	mov ax,datas
	mov ds,ax
	lea dx,str  ; 获取str的偏移地址
	mov ah,9 ; 调用9号功能输出字符串
	int 21h

	mov ah,4ch
	int 21h
codesg ends
end

 

方法二: 直接向显卡写字符串

    TEST.ASM:

assume cs:codesg,ds:datas

datas segment
db 'Hello World!'
datas ends

codesg segment
start:
	mov ax,datas
	mov ds,ax ;ds:si 指向字符串
	mov si,0

	mov bx,0b800h
	mov es,bx
	mov di,0   ;es:di 指向显卡缓冲区
	mov cx,12
	
;循环12次,向显卡缓冲区内写入字符串
s0:
	mov ah,1010b
	mov al,[si]
	mov es:[di],ax ;向屏幕逐个写入字符串
	inc si             ;移动至下一个字符串
	add di,2
	loop s0
	
	mov ax,4c00h
	int 21h

codesg ends
end start
;注:必须先清空屏幕,才能在dos开头处显示Hello world字符

   运行结果:

  hello world

 

方法三: 直接用debug命令编写exe,这个太牛了

    http://jakwings.is-programmer.com/posts/27619.html

 

  • 大小: 23.8 KB
分享到:
评论

相关推荐

    汇编语言实现输出helloworld

    这段汇编语言代码实现了最基本的HelloWorld程序,在DOS环境下运行。通过对数据段和代码段的分析,我们不仅了解了汇编语言的基本语法,还学会了如何使用DOS系统功能调用来输出字符串。这对于学习汇编语言以及理解...

    汇编语言hello,world

    在这里,我们将深入探讨如何使用汇编语言在DOS环境下编写和运行一个"Hello, World!"程序。 首先,我们有两个汇编源文件,`boot.asm`和`hello.asm`。`boot.asm`通常是引导加载器,负责将程序加载到内存并启动执行。...

    第一个汇编程序-Hello World

    第一个汇编程序-Hello World 调用MessageBoxA弹出对话框

    MASM_masmhellloworld_汇编语言helloworld_

    标题“MASM_masmhellloworld_汇编语言helloworld_”揭示了我们要讨论的主题,即使用Microsoft Macro Assembler(MASM)编写一个简单的“Hello, World!”程序。这是一个经典的编程入门示例,用于演示基本的汇编语言...

    各种语言的Helloworld编程

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` JavaScript 在浏览器环境中可以这样写: ```javascript console.log("Hello, World!"); `...

    masm汇编helloworld模板

    在`HelloWorld.asm`中,我们可能会看到类似以下的代码片段,用于打印"Hello, World!": ```assembly section .data hello db 'Hello, World!',0 section .text global _start _start: ; 设置段寄存器 mov ax,...

    汇编helloworld

    汇编语言第一个入门程序,helloworld的asm格式文档

    汇编hello world实例

    汇编编写hello world,供学习和交流使用,希望大家喜欢

    Windows环境下32位汇编语言程序设计:罗云彬2013最新版随书资源

    《Windows环境下32位汇编语言程序设计》从编写应用程序的角度,从“HelloWorld"这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。Windows环境下32位...

    x86汇编语言测试程序——输出“Hello World!”

    用x86汇编写的环境搭建的测试程序。如果输出“Hello World!”那么就表示环境搭建成功。大家可以下载尝试一下。

    汇编语言写一个hello world.pdf

    ### 汇编语言编写“Hello, World!”程序详解 #### x86 架构下的“Hello, World!” **汇编语言**是一种低级编程语言,它与特定类型的处理器架构紧密相关。对于初学者而言,编写一个“Hello, World!”程序是学习任何...

    Windows环境下32位汇编语言程序设计

    Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的...

    Linux 汇编语言开发指南.doc

    本资源提供了 Linux 平台下汇编语言开发的详细指南,涵盖了汇编语法格式、Hello World 示例代码、Linux 汇编工具、系统调用、GCC 内联汇编等多个方面的知识点。 一、简介 汇编语言是最基本的编程语言之一,虽然...

    一个简单的x86架构下的汇编语言脚本示例,在控制台上输出"Hello, World!"

    ### 汇编语言在x86架构下输出“Hello, World!”的实现方法 #### 知识点一:x86架构与汇编语言基础 - **x86架构**:这是一种广泛应用于个人计算机中的微处理器架构。该架构最初由Intel设计,支持多种不同的指令集,...

    asm_helloworld_world_

    标题“asm_helloworld_world_”暗示我们关注的焦点是一个用汇编语言编写的“Hello, World!”程序。在计算机科学的教育中,"Hello, World!"通常被用作初次接触新编程语言时编写的第一个程序,它能快速验证编译器和...

    《Windows环境下32位汇编语言设计(典藏版)》配套光盘.zip

    《Windows环境下32位汇编语言程序设计》从编写应用程序的角度,从“HelloWorld"这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。Windows环境下32位...

    汇编语言软件masm5.0

    同时,通过编写简单的程序,如打印“Hello, World!”,来实践基本的指令操作。 4. 实践应用 - 系统编程:汇编语言在操作系统开发、设备驱动编写等领域有着不可替代的地位。MASM5.0能帮助开发者直接操作硬件,实现...

    cpp-HelloWorld执行的最小指令集和汇编器编译器

    当我们编写一个简单的"Hello World"程序并运行它时,背后涉及到一系列的底层操作,包括编译、汇编和执行等步骤。这里我们将深入探讨"Hello World"程序在C++中的最小指令集、汇编器和编译器的工作原理。 1. **最小...

    Windows环境下32位汇编语言程序设计(典藏版)分卷压缩:Part1/2

    Windows环境下32位汇编语言程序设计(典藏版)(带书签):本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的...

    计算机语言版HelloWorld.pdf

    对于不同的计算机语言而言,编写HelloWorld程序的方式各有不同,但它们的核心目的都是相同的——让程序员能够快速上手并理解该语言的基本使用方法。 从汇编语言到C、C++、Java、C#和Python,每一种计算机语言的出现...

Global site tag (gtag.js) - Google Analytics