汇编语言高手请进!

2025年02月28日 22:27
有1个网友回答
网友(1):

分好高,被诱惑了
程序如下:经过编译,验证,

用的方法是查表法
STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
STACK ENDS
DATA SEGMENT PARA PUBLIC 'DATA'
ARRAY1 DB 0,1,2,3,4,5,6,7,8,9
TABLE DB '0','1','2','3','4','5','6','7'
DB '8','9'
ASC DB 16 DUP(?)

DATA ENDS

CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE
ASSUME DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV CX,10
MOV SI,OFFSET ARRAY1
MOV DI,OFFSET ASC

L1: MOV BX,OFFSET TABLE

MOV AL,DS:[SI]
XLAT查表

MOV DS:[DI],AL
INC DI
INC SI
DEC CX
JNZ L1
int 3 ;便于返回dos前查看结果
MOV AH,4CH
INT 21H
CODE ENDS
END START
验证方法是D DS:0014
也可尝试enu8086这个软件,很好用

第二题:

STACK SEGMENT PARA STACK 'STACK'
DB 256 DUP(?)
STACK ENDS
DATA SEGMENT PARA PUBLIC 'DATA'
ARRAY DB 0,1,2,3,4,5,6,7,8,9,03,23
db 3,0f0h, 43,124,112,102,98
db 224,120,234
DATA1 DB 0,0

DATA ENDS

CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE
ASSUME DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET ARRAY
MOV CX,22
MOV AL,DS:[SI]
L1: DEC CX
JZ EXIT
INC SI
CMP AL,DS:[SI]
JG L1
MOV AL,DS:[SI]
JMP L1
MOV DI,OFFSET DATA1
MOV DS:[DI], AL

EXIT:
MOV SI,OFFSET ARRAY
MOV CX,22
MOV AH,DS:[SI]
L2: DEC CX
JZ EXIT1
INC SI
CMP AH,DS:[SI]
JL L2
MOV AH,DS:[SI]
JMP L2
MOV DS:[DI],AH
EXIT1: HLT
CODE ENDS
END START