📄 task_5.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 + -