DOS汇编练习(4)——02h,09h显示功能&Hello World!

本文介绍使用MASM通过两种方式实现字符串显示的方法:一种是利用02H中断逐字符显示,另一种是通过09H中断直接显示整个字符串。这两种方法为MASM编程中的基本输出功能提供了实用的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意事项:
masm有一个不成文的规定,那就是在定义完数据段后,所定义的变量均向后100h个单元,需要我们将ds段寄存器置位,在程序的start:后面加上如下指令:
mov ax,data
mov ds,ax

本程序主要是调用int 21h的显示功能,可以用02h单个字符循环显示,也可以用09h显示字符串。

1.02h显示:

DATA SEGMENT
	STR DB 'H', 'e', 'l', 'l', 'o', ',', 'L', 'C', ' ', 'U', 'n', 'i', 'v', 'e', 'r', 's', 'i', 't', 'y', '!'
	STRLEN = $ - STR ;定义长度
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DS,AX
	   
	LEA BX,STR
	MOV CX,STRLEN ;计数次数及长度
	;ADD BX,STRLEN -1 ;配合DEC BX可以倒着显示
DISP:
	MOV DL,[BX]
	MOV AH,02H
	INT 21H
	INC BX
	LOOP DISP

	MOV AH,4CH
	INT 21H
CODE ENDS
	END START

运行结果:
在这里插入图片描述
2.09h显示

date segment
string  db  'Hello, World !','$' ;定义字符串
date ends
code segment
	assume cs:code, ds:date
start:   
	mov ax,date	 ;设置入口参数		 
	mov ds,ax
	MOV dx, offset string 
	mov ah, 09h	 ;调用09字符串显示功能	
	int 21h
	mov ax,4ch	;返回DOS		
	int 21h
code ends
	end start

运行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayne_Fine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值