DATAS SEGMENT
;此处输入数据段代码
DATA1 DB 0h,0h,0h,0h
N DW 4
X DW 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AX, 0
MOV BX, 1
MOV CX, 1000
mov dx,0
NEXT:
add ax,cx
adc dx,0
;每计算完一次之后都要打印一下结果,结果的低位保存在ax中,高位保存在dx中
mov ds:[0],dh
mov ds:[1],dl
mov ds:[2],ah
mov ds:[3],al
push ax
push dx
push cx
;call print_num_of_dl
MOV CX,N ;四次循环
MOV BX,X ;从零开始
BE: ;MOV N,CX
;MOV BX,X
push cx ;保存cx的数值
MOV DL,DATA1[BX]
INC BX
;MOV X,BX
push bx
CALL DELY
pop bx
pop CX ;读取cx的值
CMP CX,1
JE FINISH
MOV DL,','
MOV AH,2
INT 21H
LOOP BE
;call print_num_of_dl
FINISH:pop cx
pop dx
pop ax
call crlf
loop NEXT
MOV AH,4CH
INT 21H
CRLF PROC NEAR
PUSH AX
PUSH DX
MOV AH,2
MOV DL,0DH
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
POP DX
POP AX
RET
CRLF ENDP
DELY PROC NEAR
MOV BL,DL
MOV CL,4
SHR DL,CL
OR DL,30H
CMP DL,39H
JBE AD1
ADD DL,7
AD1: MOV AH,2
INT 21H
MOV DL,BL
AND DL,0FH
OR DL,30H
CMP DL,39H
JBE AD2
ADD DL,7
AD2: MOV AH,2
INT 21H
MOV DL,'H'
MOV AH,2
INT 21H
RET
DELY ENDP
CODES ENDS
END START
汇编16位指令集 实现1000的累加
猜你喜欢
转载自blog.csdn.net/qq_20176001/article/details/92658804
今日推荐
周排行