嗨,我制作的程序将旋转两个符号 - \ 和 / 但我不知道如何在嵌套循环中设置 cx 计数器有人可以给我建议或帮助我吗?
这是那部分的代码
program:
mov ah, 0fh ; function - get video mode
int 10h
push ax ; save number of columns
push bx ; save page number
mov ah, 0 ; function - set video mode
int 10h
mov al, 0003h ;set video mode
int 10h
mov cx,10d ; Outer loop counter how many symbols rotate
mov bx,50d ; this is for delay loop
OuterLoop:
push cx
mov ah,02h
mov bh, 0 ;cursor set
mov dh, 2
mov dl, 10
int 10h
mov AH,0Ah
mov al,"/" symbol /
mov bh,0
mov cx,1
int 10h
mov cx,bx
call Delay ;delay loop
sub bx,15d
mov ah,02h
mov bh, 0
mov dh, 2 cursor set
mov dl, 10
int 10h
mov AH,0Ah
mov al,"\" ;symbol \
mov bh,0
mov cx,1
int 10h
mov cx,bx
call Delay ; another delay
sub bx,10
pop cx ; Restore current CX
loop OuterLoop
jmp START ; and after end it should jump to start where is menu with choices
它应该像这样工作
写入/延迟例如 10 秒写入\延迟 8 秒并跳转到开头并循环
感谢您的建议
这是我的延迟程序
Delay PROC NEAR ;
push ds ;
push si ;
push ax ;
xor ax, ax ;AX = 0
mov ds, ax ;DS = 0
mov si, 046Ch ;
t1: mov ax, [si] ;
t2: cmp ax, [si] ;
je t2 ;
loop t1 ;
pop ax ;
pop si ;
pop ds ;
ret ;
Delay ENDP ;
我仍在开发此应用程序,但它无法正常工作我所需要的只是执行此步骤
程序:循环开始\延迟延迟100次/延迟延迟80次循环并在每个循环之后减少延迟100次80、60、40等等,但我不知道在哪里放置push和pop cx,因为我的延迟程序正在与 cx 合作。例如,我只是将 cx 设置为 100,它会产生延迟等等。