⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task_5.asm

📁 一些汇编语言的实验设计源代码
💻 ASM
字号:
;Task_5.asm		习题3_3  第5题
;5.	内存中以str1和str2开始分别存放了两个字符串, 结束符为NULL(ASCII码为0),
;将str2连接到str1后, 形成1个字符串, 并将连接后的字符串str1输出到屏幕上;

data	segment	para
	str1	db	'Hello', 0
	str2	db	' Automation', 0
data	ends
ss_seg	segment	stack
	dw	50	dup(0)
ss_seg	ends
code	segment
	assume	cs:code,ds:data,ss:ss_seg
	main	proc	far
			mov		ax, data
			mov		ds, ax
			mov		es, ax
			lea		si, str1
			call	strlen			;计算str1的长度
			add		si, ax
			dec		si				
			mov		di, si			;让di指向str1的结束符
			lea		si, str2
			call	strlen			;计算str2的长度
			mov		cx, ax
			rep		movsb			;进行串连接
			mov		dl, 0dh			;换行
			mov		ah, 2
			int		21h
			mov		dl, 0ah			;回车
			mov		ah, 2
			int		21h
			lea		si, str1
	main2:	lodsb
			and		al, al			;判断是否为结束符
			jz		main1
			mov		dl, al			;输出字符串, 逐个字符输出
			mov		ah, 2
			int		21h
			jmp		main2
	main1:	mov		ax, 4c00h
			int		21h
	main	endp
	
	
	;输入参数: si指向需要计算长度的字符串首地址
	;输出参数: ax中存放字符串长度(包括结束符)
	;功能: 计算字符串长度
	strlen	proc
		push	di
		push	cx
		mov		cx, 0ffffh
		xor		ax, ax
		mov		di, si
		repnz	scasb
		not		cx
		mov		ax, cx
		pop		cx
		pop		di
		ret
	strlen	endp
code	ends
	end		main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -