📄 4-19.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -