📄 6.07.asm
字号:
DATAS SEGMENT
;此处输入数据段代码
scores dw 76,69,84,90,73,88,99,63,100,80
num dw 10
S6 dw ?
S7 dw ?
S8 dw ?
S9 dw ?
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
dw 20 dup(?)
tos label word
STACKS ENDS
CODES SEGMENT
main proc near
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
;set up SS & SP register
mov ax,stacks
mov ss,ax
mov sp,offset tos
;set up stack for return
push ds ;save old data segment
sub ax,ax ;put zero in ax
push ax ;save it on stack
;set DS register to current data segment
mov ax,datas
mov ds,ax ;into ds register
;put address into stack
mov bx,offset scores
push bx
mov bx,offset num
push bx
mov bx,offset S6
push bx
call near ptr conclusion
ret
conclusion proc near
push bp ;save bp
mov bp,sp ;use bp to access parameter
push ax
push cx
push si
push di
mov si,[bp+0ah] ;get addr of scores
mov di,[bp+06h] ;get addr of num
mov cx,[di] ;cx<--(num)
mov di,[bp+04h] ;get addr of S6
xor ax,ax
next:
mov dl,10
mov ax,[si]
div dl
cbw
sub ax,6
add ax,ax
mov di,ax
add S6[di],1
;mov di,ax
;add [di],1
mov di,[bp+04h]
add si,2
loop next
pop di
pop si
pop cx
pop ax
pop bp
ret 6
conclusion endp
main endp
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -