emu8086 изменить регистр введенной строки и обратить ее обратно [закрыто]
Я совершенно новичок в программировании на ассемблере и застрял с проблемой, в которой мне нужно изменить регистр введенной строки, а также перевернуть строку. Я использую emu8086. В следующем коде я могу изменить регистр или перевернуть строку. но мне нужно выполнить обе операции одновременно.
.MODEL CASECHANGE
.DATA
MSG1 DB 0DH,0AH, 'Enter string:приведенный ниже код переворачивает строку, а приведенный выше код изменяет регистр, и мне нужно объединить оба кода для достижения желаемого результата
BACK:
int 21h
MOV BL,AL
cmp al,0dh
jz exit
mov [si],al
inc si
inc ch
jmp back
EXIT:
lea dx,MSG2
mov ah,09h
int 21h
cmp1:
mov al,[si]
mov dl,al
mov ah,02h
int 21h
dec si
dec ch
jnz cmp1
mov ah,01ch
int 21h
OFFSETS:
mov ch,01h
mov si,offset STR1
END START
Эти 2 набора кодов предоставлены моим инструктором, поэтому я могу играть только с этим кодом.
MSG2 DB 0DH,0AH, 'String in reverse case:приведенный ниже код переворачивает строку, а приведенный выше код изменяет регистр, и мне нужно объединить оба кода для достижения желаемого результата
BACK:
int 21h
MOV BL,AL
cmp al,0dh
jz exit
mov [si],al
inc si
inc ch
jmp back
EXIT:
lea dx,MSG2
mov ah,09h
int 21h
cmp1:
mov al,[si]
mov dl,al
mov ah,02h
int 21h
dec si
dec ch
jnz cmp1
mov ah,01ch
int 21h
OFFSETS:
mov ch,01h
mov si,offset STR1
END START
Эти 2 набора кодов предоставлены моим инструктором, поэтому я могу играть только с этим кодом.
STR1 DB 255 DUP(?)
.CODE
START:
MOV AX,@DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,09H
INT 21H
LEA SI,STR1
MOV AH,01H
jz offsets
GET:
INT 21H
MOV BL,AL
CMP AL,0DH
JE SET
XOR AL,20H
MOV [SI],AL
INC SI
JMP GET
SET:
MOV AL,'приведенный ниже код переворачивает строку, а приведенный выше код изменяет регистр, и мне нужно объединить оба кода для достижения желаемого результата
BACK:
int 21h
MOV BL,AL
cmp al,0dh
jz exit
mov [si],al
inc si
inc ch
jmp back
EXIT:
lea dx,MSG2
mov ah,09h
int 21h
cmp1:
mov al,[si]
mov dl,al
mov ah,02h
int 21h
dec si
dec ch
jnz cmp1
mov ah,01ch
int 21h
OFFSETS:
mov ch,01h
mov si,offset STR1
END START
Эти 2 набора кодов предоставлены моим инструктором, поэтому я могу играть только с этим кодом.
MOV [SI],AL
LEA DX,MSG2
MOV AH,09H
INT 21H
LEA DX,STR1
MOV AH,09H
INT 21H
MOV AL,09H
JMP START
JMP BACK
.EXIT
приведенный ниже код переворачивает строку, а приведенный выше код изменяет регистр, и мне нужно объединить оба кода для достижения желаемого результата
BACK:
int 21h
MOV BL,AL
cmp al,0dh
jz exit
mov [si],al
inc si
inc ch
jmp back
EXIT:
lea dx,MSG2
mov ah,09h
int 21h
cmp1:
mov al,[si]
mov dl,al
mov ah,02h
int 21h
dec si
dec ch
jnz cmp1
mov ah,01ch
int 21h
OFFSETS:
mov ch,01h
mov si,offset STR1
END START
Эти 2 набора кодов предоставлены моим инструктором, поэтому я могу играть только с этим кодом.