首页 > 编程语言 >汇编语言——实现用多种寻址方式在屏幕上显示“hello world !“

汇编语言——实现用多种寻址方式在屏幕上显示“hello world !“

时间:2024-03-24 22:32:23浏览次数:25  
标签:string mov si 寻址 寄存器 world bx hello 21h

在这里插入图片描述

;数据段定义
data segment
	string db "hello world !",0dh,0ah,'$'
	
	;想要显示的字符个数,不显示$
	count dw $-string-1
data ends

;堆栈段定义
stack segment stack
	top label word
	dw 30h dup (?)
stack ends

;代码段定义
code segment
	;assum 伪指令,不执行
	assume ds:data,ss:stack,cs:code
;main 为主过程名字,类似主函数名,程序从这里开始执行
main proc far

;初始化数据段
	mov ax,data
	mov ds,ax

;初始化堆栈段
	mov ax,stack
	mov ss,ax
	lea sp,top

;9号功能显示字符串
;串地址=ds:dx
;'$'结束字符串
	;lea dx,string	
	mov dx,offset string
	mov ah,9
	int 21h

;基址变址
;只能是一个基址寄存器bx,bp+一个变址寄存器si,di	
	mov cx,count
	lea bx,string
	mov si,0
next1:
	mov dl,[bx+si]
	mov ah,2h
	int 21h
	inc si
	loop next1

;寄存器相对寻址
;(基址寄存器bx,bp/变址寄存器si,di)+8位或16位偏移量
	mov cx,count
	mov si,0
next2:
	;mov dl,[string+si]
	mov dl,string[si]
	mov ah,2h
	int 21h
	inc si
	loop next2
	
;寄存器间接寻址
;只能是基址寄存器bx,bp/变址寄存器si,di	
	mov cx,count
	lea bx,string
next3:
	mov dl,[bx]
	mov ah,2h
	int 21h
	inc bx
	loop next3
	
	;利用中断来结束程序,返回OS
	mov ah,4ch
	int 21h
;主过程main结束
main endp
code ends
	;函数入口关闭
	end main

标签:string,mov,si,寻址,寄存器,world,bx,hello,21h
From: https://blog.csdn.net/m0_62122789/article/details/136992125

相关文章

  • Code Block下载安装-运行Hello world!
     一、官网下载Code::Blocksdownload|SourceForge.net直接点击Download二、安装1.Next2.IAgree3.Next4.选择安装位置三、新建一个模版1.New->Newfromtemplate2.我这里新建一个C++项目3.Finish4.运行不成功5.可能是编译器路径不对,查看一下  Set......
  • AP World History复习提纲(unit 3~uint4)
    theme1Humansandtheenvironmenttheme2culturaldevelopmentsandinteractions(important)theme3governancetheme4economicsystemstheme5socialinteractionsandorganization(important)Europe:Theyear1450hastraditionallysignifiedtheendingof......
  • 各大编程语言输出Hello World
    下面小编就开始编写C++,Java,Go,PHP,Python的简单实例代码C++#include<iostream>usingnamespacestd;intmain(){cout<<"HelloWorld"<<endl;return0;}这是一个简单的C++程序,用于输出"HelloWorld"到控制台。下面是对这段代码的逐行解析:#include<io......
  • 鸿蒙HarmonyOS实战-工具安装和Helloworld案例
    ......
  • Debug环境配置能编译、调试,而 Release 却不能编译,找不到opencv_world480d.lib,我的解决
    这个问题弄了好久,网上的查看了N多资料,看来问题各不相同,总是弄不好。终于弄好,总结如下几点:1、弄清楚版本号,我用的是VS2017,对应的应该是VC15。opencv_world480d.lib对应的opencv估计是不支持,其目录中只有一个VC16,奇怪的是DEBUG模式认这个手动,将opencv下的VC16改为VC15,......
  • 滴水逆向笔记系列-win32总结2-45.esp寻址_定位回调函数-46.子窗口_消息处理函数-47.资
    第四十五课win32esp寻址_定位回调函数自己vs编译的exe入口函数好像和课程视频哩的vc6不一样,没办法跟着视频走,可以用课件里给的作业exe勉强跟着视频学,前面的都差不多,课件下载地址:https://www.bcdaren.com/video/videoPlay/3303185150621818881.win32应用程序入口识别没加过壳......
  • 【Android】使用Android Studio运行Hello World项目
    文章目录1.JDK的安装与配置2.AndroidStudio的安装3.运行HelloWorld项目3.1新建项目3.2修改项目配置3.2.1修改UI界面3.2.2配置AndroidSDK3.3添加并运行虚拟设备3.4运行项目 1.JDK的安装与配置想要使用AndroidStudio,必须先配置Java环境,需要......
  • 6980. 【2021.02.03冬令营模拟】你的世界(world) Another Solution
    ProblemDescriptionInput从文件world.in中读入数据。Output输出到文件world.out中。输出共T行,第i行表示第i组测试数据的答案,如果可行则输出Yes,否则输出No。SampleInputCopy样例输入1:123000000111001样例输入2:134000001010001101100011......
  • hello, everyone
    终于有了一个正儿八经的地方写些东西。欢迎你的访问,也欢迎我的开始先介绍一下我自己15年计算机工作者,身份在程序员和架构师之间按需切换。毕竟一般企业也很少有纯粹的架构师。过去这些年大部分时间投入在云存储领域,期间接触过一些数据库和偏上层应用的中间件,整体的技术发展路......
  • YoloV8实战:YoloV8-World应用实战案例
    摘要YOLO-World模型确实是一个突破性的创新,它结合了YOLOv8框架的实时性能与开放式词汇检测的能力,为众多视觉应用提供了前所未有的解决方案。以下是对YOLO-World模型的进一步解读:模型架构与功能YOLO-World模型充分利用了YOLOv8框架的先进特性,并引入了开放式词汇检测功能。......