8086汇编中的秒表程序

时间:2016-04-09 18:23:07

标签: assembly x86 dos real-mode

我正在编写一个程序,在60秒内打印00到60!但不知怎的,它不起作用!你们能帮忙吗?

org 100h

.model small
.stack 100h
.data 
  a db 0
  b db 0
.code 
  main PROC
    mov cx,100 
  secnd:
    mov bl,a
    add bl,48
    mov bh,b
    add bh,48
    mov ah,2
    mov dl,bl
    int 21h

    mov ah,2
    mov dh,bh
    int 21h

    mov ah,2
    mov dl,0dh
    int 21h

    mov dl,0ah
    int 21h 

    MOV  CX, 0FH
    MOV  DX, 4240H
    MOV  AH, 86H
    INT  15H

    inc a
  loop secnd
    ret

1 个答案:

答案 0 :(得分:2)

您的计划存在一些问题:

  • 由于BIOS调用使用<attr path="/api/package[@name='com.scichart.core.framework']/interface[@name='IView']‌​/method[@name='setVisibility']/parameter[@name='visibility']"/> matched no nodes 作为其参数之一,因此您实际上已经破坏了循环控制变量! CX / push它:

    pop
  • 您将 a 变量视为十分之一,将 b 变量视为单位,但您只需将一个{em> a 变量更改为单个{{ 1}}。
    你可以选择这种方法:

     mov  cx,100 
    secnd:
     PUSH CX
     ...
     POP  CX
     loop secnd
     ret