汇编小程序删除字符串中从第n个字符开始的m个字符
时间: 2023-06-12 13:05:46 浏览: 53
以下是删除字符串中从第n个字符开始的m个字符的汇编小程序:
```
.MODEL SMALL
.STACK 100H
.DATA
str1 DB 'This is a test string.', '$'
n DW 10
m DW 5
.CODE
MOV AX, @DATA
MOV DS, AX
MOV BX, n ; BX = n
ADD BX, 1 ; BX = n + 1
MOV CX, m ; CX = m
MOV SI, BX ; SI = n + 1
DEL_LOOP:
MOV AL, [SI + CX] ; AL = (n + m + 1)th character
MOV [SI], AL ; Move the character to the nth position
INC SI ; Move to the next position
LOOP DEL_LOOP ; Repeat until CX = 0
MOV [SI], '$' ; Add null character at the end of the string
MOV AH, 9
LEA DX, str1
INT 21H
MOV AH, 4CH
INT 21H
END
```
该程序将字符串 `str1` 中从第 `n` 个字符开始的 `m` 个字符删除,并将结果打印出来。首先,将 `n` 存储在 `BX` 中,将 `m` 存储在 `CX` 中。然后将指针 `SI` 移动到第 `n+1` 个字符的位置,开始一个循环。在循环中,将 `(n+m+1)` 个字符移动到第 `n` 个字符的位置,然后将指针 `SI` 向前移动一位。重复此过程,直到 `m` 个字符被删除。最后,将字符串末尾添加一个空字符,并将结果打印出来。