📄 4-17.asm
字号:
4-17题
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'
AD1 DB 1,3,-4,-5,6,0,-4,5,8,4,6,-7
AD2 DB 30H
DB ?
DB 30H DUP(?)
AD3 DB 30H
DB ?
DB 30H DUP(?)
NUM1 DB 0
NUM2 DB 0
CHAR1 DB 'POSITIVE NUM1:',0AH,0DH,'$'
CHAR2 DB 'NEGATIVE NUM2:',0AH,0DH,'$'
CHAR3 DB 0AH,0DH,'$'
; TODO: add your data here!!!!
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
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
MOV SI,OFFSET AD1
MOV CX,12
MOV BX,OFFSET AD2
ADD BX,2
MOV DI,OFFSET AD3
ADD DI,2
LOP3: MOV AL,[SI]
INC SI
CMP AL,0
JG JOP1
JL JOP2
JMP LOP4
LOP4: LOOP LOP3
JMP JUST
JOP1:
INC NUM1
MOV [BX],AL
INC BX
LOOP LOP3
JMP JUST
JOP2:
INC NUM2
MOV [DI],AL
INC DI
LOOP LOP3
JMP JUST
JUST:
MOV DX,OFFSET CHAR1
MOV AH,09H
INT 21H
ADD NUM1,30H
MOV DL,NUM1
MOV AH,02H
INT 21H
MOV DX,OFFSET CHAR3
MOV AH,09H
INT 21H
MOV DX,OFFSET CHAR2
MOV AH,09H
INT 21H
ADD NUM2,30H
MOV DL,NUM2
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
; set segment registers:
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
; 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 + -