首页 > 编程语言 >【汇编】时钟中断的调变速(.asm源码)

【汇编】时钟中断的调变速(.asm源码)

时间:2022-10-17 23:35:15浏览次数:40  
标签:mov al 0x40 源码 变速 dx bx asm out


项目环境
  • 编译环境:搭建一个nasm2.8的编译环境。
  • 镜像文件:采用winhex_18.2刷入编码。
  • 虚拟机:采用Bochs-2.4.5
项目软件
  • 傻瓜式环境配置。
  • 解压文件到D盘能直接使用。
  • 运行结果

【汇编】时钟中断的调变速(.asm源码)_下载地址

调速模块
;out  0x43,0x34
;out 0x40,low8
;out 0x40,high8

mov dx,0x40
mov al,0x10 ;高八位,稍微修改一点就能改变速度
out dx,al
程序源码(.asm)
org 0x8400
start:
sti

mov ax,0xb800 ;指向文本模式的显示缓冲区
mov es,ax

mov ax,0
mov ds,ax

mov word [ds:0x20],int_time0
mov word [ds:0x22],0

;变速
mov dx,0x43
mov al,0x34
out dx,al ;ffff

mov dx,0x40
mov al,0x00 ;
out dx,al

mov dx,0x40
mov al,0x10 ;高八位,稍微修改一点就能改变速度
out dx,al

;out 0x43,0x34
;out 0x40,low8
;out 0x40,high8

mov si,1600
mov bx,0
push bx
x0:
pop bx
x:
call delay
mov byte [es:bx],'Z'
mov byte [es:bx+1],0x0c
inc bx
inc bx

cmp bx,1600
jnz x

jmp x0


int_time0:
x2:
mov byte [es:si],'L'
mov byte [es:si+1],0x0a
inc si
inc si
x3:
mov al,0x20
mov dx,0x20
out dx,al ;EOI=1,中断结束

iret
delay:
mov cx,60000
x4:


标签:mov,al,0x40,源码,变速,dx,bx,asm,out
From: https://blog.51cto.com/u_15739363/5764684

相关文章