串操作指令及其应用程序的设计与调试运行——汇编实验四 用8086汇编完成下题 编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。要求在屏幕上以右边对齐的形式显示出

本文主要介绍了如何使用8086汇编语言完成一个程序,该程序能接收两个长度小于25的字符串,并在屏幕上以右对齐方式显示。文章通过方法一、方法二、方法三详细介绍实现过程,并通过四个逐步改进的测试案例进行验证。

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


在这里插入图片描述

实验目的和内容

在这里插入图片描述

实验要求和步骤

在这里插入图片描述

实现右对齐

在这里插入图片描述

在这里插入图片描述

以下为源码:

在这里插入图片描述

方法一

DATA SEGMENT
	NUM EQU 25
	BUF1   DB NUM,?,NUM DUP(?),0AH,0DH,'$'		;缓冲区1,存入字符串1
	;分别存入:可输入的最大字符数+1、实际输入字符个数、开始存放输入字符的ASCII码
	;输入回车键,输入结束,将回车的ASCII码0DH作为最后一个字符存入缓冲区,不计入实际存入字符个数
	BUF2   DB NUM,?,NUM DUP(?),0AH,0DH,'$'
	MES2  DB 0AH,0DH,'Please enter 2 strings: ', 0AH,0DH,'$'
	MES3  DB 0AH,0DH,'The result is:',0AH,0DH,'$'
DATA ENDS 

CODE SEGMENT
	ASSUME DS:DATA,CS:CODE	;将段寄存器和各个段相关联

START: 	MOV AX,DATA
	MOV DS,AX	;初始化DS
	MOV ES,AX	;初始化ES
	STD		;设置DF=1,按照减地址方向,字串处理由后往前!

	LEA DX ,MES2	;将MES2地址送到DX寄存器
	MOV AH,09H	;将9号送入AH
	INT 21H		;调用DOS 9号功能显示MES2字符串内容
	
	LEA DX,BUF1	;把BUF1偏移地址送入DX
	MOV AH,0AH
	INT 21H		;调用DOS 10号功能,从键盘读取字符存入缓冲区BUF1中
	
	MOV AH,2	;DOS 2号功能,显示一个字符
	MOV DL,0AH	;回车
	INT 21H		;
	MOV DL,0DH	;换行
	INT 21H		;第二个字符串在回车、换行后再读取
	
	LEA DX,BUF2	;
	MOV AH,0AH	;
	INT 21H		;读入第二个字符串

	MOV CL,BUF1+1	;将实际存放字符个数放入CL寄存器中
	MOV CH,0	;补全CX高位寄存器,方便后面字运算
	LEA SI,BUF1	;SI定位到第一条字符串首地址
	INC SI		;SI定位到实际存入字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风起风里

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

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

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

打赏作者

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

抵扣说明:

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

余额充值