首页 > 系统相关 >【汇编】多进程,多任务的实现(.asm源码)

【汇编】多进程,多任务的实现(.asm源码)

时间:2022-10-17 23:34:44浏览次数:38  
标签:word mov 多任务 源码 es bx ds asm inc


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

【汇编】多进程,多任务的实现(.asm源码)_汇编

程序源码(.asm)
org 0x8400
start:
sti ;IF=1
;cli ;IF=0
mov ax,0xb800 ; 指向文本模式的显示缓冲区
mov word [ds:0x22],0 ;
mov es,ax

mov ax,0
mov ds,ax
mov bx, 0

call sleep
mov word [ds:0x20],int_time0 ;20十六进制:32十进制,相当于中断表的第八个位置
mov word [ds:0x22],0 ;

call sleep
mov word [ds:0x24],int_time1
mov word [ds:0x26],0

jmp $

; 默认 1/18 s
int_time0:
mov byte [es:bx],"A"
mov byte [es:bx+1],0x0a
inc bx
inc bx

int_time1:
mov byte [es:bx],'1'
mov byte [es:bx+1],0x0c
inc bx
inc bx
x1:
mov al,0x20
mov dx,0x20
out dx,al ;EOI = 1 中断结束
iret ;

; 通过循环来延迟执行拆分时间片
sleep:
push bx ; 压栈
mov bx, 0
x2:
inc bx
cmp bx, 128
ja x2

pop bx

标签:word,mov,多任务,源码,es,bx,ds,asm,inc
From: https://blog.51cto.com/u_15739363/5764686

相关文章