汇编语言——用 INT 21H 的1号功能,输入一个字符串存放在内存,倒序输出

题目:

用 INT 21H 的1号功能,输入一个字符串“Hello, world!”,存放在内存,然

后倒序输出。
在这里插入图片描述

data segment
	;打开一个100字节的内存区
	string db 100 dup (?)  
data ends

stack segment stack
	top label word
	;打开一个48字节的内存区
	dw 30h dup (?)
stack ends

code segment
	assume ds:data,ss:stack,cs:code
main proc far
	;初始化
	mov ax,data
	mov ds,ax
	mov ax,stack
	mov ss,ax
	lea sp,top
	
	mov bx,0			;作为存放数据的偏移量

next1:
	mov ah,1			;21H的1号功能:键盘输入并回显,AL=输入字符
	int 21h
	mov string[bx],al
	inc bx
	cmp al,0dh			;判断输入的字符是否为回车
	jz next2			;回车跳转到next2
	loop next1			;不是回车继续输入
	
next2:
	mov cx,bx			;bx作为偏移量逆序输出,先把偏移量给cx
	inc cx				;字符数是bx+1,即cx+1作为循环次数

;逆序输出字符串
next3:
	mov dl,string[bx]
	mov ah,2h
	int 21h
	dec bx
	loop next3
	
	mov ah,4ch
	int 21h
main endp
code ends
	end main
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值