【发布时间】:2018-12-18 09:45:35
【问题描述】:
我有一个问题要编写一个可以得到 8 个字符/数字的代码 它会在它们之间每 2 个字节交换一次。
例子:
输入 451ABD45
ARR = |34|35|31|41|42|44|34|35
NewARR = |35|34|41|31|44|42|35|34
输出 54A1DB54
我的代码:
STA SEGMENT STACK
DB 100H DUP (0)
STA ENDS
DATA SEGMENT
MSG DB 'Please Enter 8 Chars : $'
DIM DW 10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STA
MAIN:
MOV AX, DATA
MOV DS, AX
LEA DX, MSG
MOV AH, 9H
INT 21H
MOV DL, 10
MOV AH, 02H
INT 21H
MOV DL, 13
MOV CX, 8
MOV BX, 0
MOV DX, 0
INPUT:
MOV AH, 1H
INT 21H
MOV AH, 0
MOV DIM[BX], AX
INC BX
LOOP INPUT
MOV CX, 4
MOV BX, 0
EXCHANGE:
MOV DX, DIM[BX] ;0
INC BX ;1
MOV AX, DIM[BX] ;1
DEC BX ;0
MOV DIM[BX], AX ;0
ADD BX, 1 ;1
MOV DIM[BX], DX ;1
INC BX
LOOP EXCHANGE
MOV DL, 10
MOV AH, 02H
INT 21H
MOV DL, 13
MOV CX, 8
MOV BX, 0
MOV DX, 0
PRINT:
MOV DX, DIM[BX]
INC BX
MOV AH, 2H
INT 21H
LOOP PRINT
MOV AX, 4C00H
INT 21H
CODE ENDS
END MAIN
我的输入 451ABD45
ARR = |34|35|31|41|42|44|34|35
MY_NewARR = |35|34|41|35|44|41|35|44
我的输出 54A5DA5D
我的代码有什么问题,感谢您的帮助
【问题讨论】: