用汇编语言程序 数据段中以片与地址BUF开始连续100个字符,将该串中的所有✀A✀改为✀B✀

2025-06-26 20:06:48
推荐回答(2个)
回答1:

DATA SEGMENT
SOUR DB 64
DB 0
COUNT DW 0

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

MOV DX,OFFSET SOUR
MOV AH,0AH
INT 21H

MOV AL, [SOUR+1]
MOV AH,0H
MOV [COUNT],AX

MOV CX,COUNT
DEC CX
OUTLP: MOV DX,CX
MOV BX,OFFSET SOUR
INLP: MOV AL,[BX]
CMP AL,[BX+1]
JNA NEXT

XCHG AL,[BX+1]
MOV [BX],AL
NEXT: INC BX
DEC DX
JNZ INLP
LOOP OUTLP

OUPUTING: MOV DX,OFFSET SOUR
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE EMDS
END START
这回差不多 了

回答2:

assume cs:code ,ds:data
data segment
buf db 100 dup (?)
data ends
code segment
start:
mov ax,data
mov ds,ax

lea bx,buf
mov ah,'B'
mov cx,100

s:
mov al,[bx]
cmp al,'A'
jne next
mov [bx],ah
next:
inc bx
loop s

mov ax,4c00h
int 21h

code ends
end start