用汇编语言填写下面代码段中文字要求的程序代码:COUNT EQU 10 DATA SEGMENT NUM DB 10 DUP(?) IBUF DB 7,0,6 DUP(?) OBUF DB 6 DUP(?) INFOR1 DB "Please input 10 numbers:" , 0AH, 0DH, '$' INFOR2 DB "The max found in the 10 numbers is $" INFOR3 DB 0AH, 0DH, '$' DATA ENDS STACK SEGMENT stack DATA2 DW 40 DUP(?) TOP EQU LENGTH DATA2 STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX 定义显示字符串信息的宏指令DSTRING DSTRING INFOR1 MOV BX, OFFSET NUM MOV CX, COUNT LOOP1: CALL DTOB DESTRING INFOR3 MOV [BX], AL INC BX LOOP LOOP1 MOV AX, OFFSET NUM PUSH AX MOV CX, COUNT PUSH CX CALL FMAX DESTRING INFOR2 CALL BTOAD MOV AH, 4CH INT 21H 定义在N个无符号字节型二进制数中找出最大数的子程序FMAX 定义将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的子程序BTOAD 定义将键盘输入的十进制数转换为二进制数的子程序DTOB CODE ENDS END START
时间: 2023-11-14 07:04:23 浏览: 66
下面是您所需的汇编语言代码:
```assembly
COUNT EQU 10
DATA SEGMENT
NUM DB 10 DUP(?)
IBUF DB 7,0,6 DUP(?)
OBUF DB 6 DUP(?)
INFOR1 DB "Please input 10 numbers:", 0AH, 0DH, '$'
INFOR2 DB "The max found in the 10 numbers is $"
INFOR3 DB 0AH, 0DH, '$'
DATA ENDS
STACK SEGMENT
DATA2 DW 40 DUP(?)
TOP EQU LENGTH DATA2
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START:
MOV AX, DATA
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV AX, TOP
MOV SP, AX
; 定义显示字符串信息的宏指令DSTRING
DSTRING INFOR1
MOV BX, OFFSET NUM
MOV CX, COUNT
LOOP1:
CALL DTOB
DESTRING INFOR3
MOV [BX], AL
INC BX
LOOP LOOP1
MOV AX, OFFSET NUM
PUSH AX
MOV CX, COUNT
PUSH CX
CALL FMAX
DESTRING INFOR2
CALL BTOAD
MOV AH, 4CH
INT 21H
; 定义在N个无符号字节型二进制数中找出最大数的子程序FMAX
FMAX:
POP CX
POP AX
MOV BL, [AX]
INC AX
DEC CX
JCXZ FMEXIT
FMLOOP:
CMP BL, [AX]
JAE FMNEXT
MOV BL, [AX]
FMNEXT:
INC AX
LOOP FMLOOP
FMEXIT:
MOV AL, BL
RET
; 定义将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的子程序BTOAD
BTOAD:
MOV BX, OFFSET OBUF
MOV CX, 6
MOV DL, 0
MOV DH, AL
BTOADLOOP:
DIV DL
ADD DL, '0'
MOV [BX], DL
INC BX
LOOP BTOADLOOP
DEC BX
MOV CX, 6
MOV AH, 9
BTOADLOOP2:
MOV DL, [BX]
INT 21H
INC BX
LOOP BTOADLOOP2
RET
; 定义将键盘输入的十进制数转换为二进制数的子程序DTOB
DTOB:
MOV BX, OFFSET IBUF
MOV CX, 7
MOV DI, 0
MOV DL, 0
DTOBLOOP:
MOV AH, 1
INT 21H
CMP AL, 0DH
JE DTOBEXIT
MOV [BX], AL
INC BX
INC DI
LOOP DTOBLOOP
DTOBEXIT:
DEC BX
MOV CX, DI
MOV AL, 0
DTOBLOOP2:
MOV DL, [BX]
SUB DL, '0'
SHL AL, 1
ADD AL, DL
INC BX
LOOP DTOBLOOP2
RET
CODE ENDS
END START
```