4-19.asm
来自「基于汇编语言的几个微机接口程序」· 汇编 代码 · 共 125 行
ASM
125 行
4-19题
TITLE 8086 Code Template (for EXE file)
; AUTHOR emu8086
; DATE ?
; VERSION 1.00
; FILE ?.ASM
; 8086 Code Template
; Directive to make EXE output:
#MAKE_EXE#
DSEG SEGMENT 'DATA'
; TODO: add your data here!!!!
BLOCK DB 1,-4,-5,-6,8,9,1,34,-56,43,78,-89
COUNT EQU 12
MAX DB 0
CHAR DB 'MAX=',0AH,0DH,'$'
DSEG ENDS
SSEG SEGMENT STACK 'STACK'
DW 100h DUP(?)
SSEG ENDS
CSEG SEGMENT 'CODE'
;*******************************************
START PROC FAR
; Store return address to OS:
PUSH DS
MOV AX, 0
PUSH AX
; set segment registers:
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
MOV CX,COUNT
MOV SI,OFFSET BLOCK
LOP1: CMP [SI],0
JGE LOP2
MOV AL,[SI]
MOV BL,-1
IMUL BL
MOV [SI],AL
INC SI
LOOP LOP1
JMP JUST
LOP2: DEC CX
JCXZ JUST
INC SI
JMP LOP1
JUST: MOV CX,COUNT
MOV SI,OFFSET BLOCK
JMP LOP3
LOP3: MOV AL,[SI]
CMP MAX,AL
JGE LOP4
MOV MAX,AL
INC SI
LOOP LOP3
JMP JUST2
LOP4: INC SI
LOOP LOP3
JMP JUST2
JUST2: ;只显示16进制数
MOV DX,OFFSET CHAR
MOV AH,09H
INT 21H
MOV AL,MAX
AND AL,0F0H
MOV CL,4
SHR AL,CL
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
AND MAX,0FH
MOV AL,MAX
ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
; TODO: add your code here!!!!
; return to operating system:
RET
START ENDP
;*******************************************
CSEG ENDS
END START ; set entry point.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?