实验目的和内容

实验要求和步骤

实现右对齐


以下为源码:

方法一
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定位到实际存入字符串