• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编源码系列之burnout

汇编源码系列之burnout

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了burnout,burnout是什么意思,job burnout,burnout paradise,listener burnout等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

这个都是过去DOS时代的汇编源码,虽然已经过去了,但是对于学习汇编还是有帮助的,汇编语言只是程序员一门基础语言,大多人掌握即可,不一定要深入研究.......

COMMENT *
 Demo (and semi-useful) program to read/set burnout device parameters.
 Usage: burnout [ticks] [C+-] [V+-] [H+-]
 Parameters can be separated by almost anything.
 With no parameters, program simply returns current status.
 Examples:
  burnout 5000        (sets time to 5000 ticks)
  burnout 5000H+       (time=5000, use hardware blanking)
  burnout 5000,h+       (ditto, separators don't matter)
  burnout c+h-v+       (continuous clear, software, monitor video)
  burnout /C+ /H- /V+     (ditto)
  burnout           (return status only)
 Assembly/link:
  masm burnout;
  link burnout; (ignore NO STACK warning message)
  exe2bin burnout burnout.com
 By CJDunford 20-Mar-1985
   Compuserve 76703,2002
======================================================================
*
stdout equ 1              ; DOS output files
stderr equ 2
; ----- General equates
DOS     equ 21H           ; DOS interrupt
TERMINATE  equ 20H           ; Exit to DOS
PRINT    equ 09H           ; DOS "print" string to stdout
FOPEN    equ 3D02H          ; DOS file open, read/write
FREAD    equ 3FH           ; DOS file read
FWRITE   equ 40H           ; DOS file write
CR     equ 13           ; ASCII carriage return
LF     equ 10           ; ASCII line fine
code segment
assume cs:code,ds:code
org 80H                 ; Parm storage area in PSP
ParmLength label byte          ; Length of parms
org 81H
Parameters label byte          ; Start of parms
org 100H                ; Org for .COM
main proc far
    jmp start            ; Hate to execute data
DevName     db 'BRNDEV',0      ; Burnout device name
handle     dw ?          ; Storage for handle
Flush      db '@'         ; Char to flush device I/O
Execute     db '#'         ; Char to execute device commands
NotInstalled  db 'Burnout device is not installed',13,10
NotInstalledL  equ $ - NotInstalled
Status     db 'Current status: '  ; Status message
StatInsert   db 40 dup (?)      ; brndev will store status here
; ----- Open the device
start:
    mov dx,offset DevName      ; DS:DX => device name
    mov ax,FOPEN
    int DOS
    jnc A1             ; Continue if no error
    mov bx,stderr          ; Message to stderr
    mov cx,NotInstalledL
    mov dx,offset NotInstalled
    mov ah,FWRITE
    int DOS
    jmp exit
; ----- Flush any pending I/O to/from the device
A1:
    mov handle,ax          ; Save device handle
    mov dx,offset Flush       ; Point to the "@"
    mov cx,1            ; Writing one byte
    mov bx,handle          ; Device handle
    mov ah,FWRITE          ; Write "@" to device
    int DOS
; ----- Send and execute parameters if present
    mov cl,ParmLength        ; Parm length to CL
    or cl,cl            ; Any parms present?
    jz A2              ; Skip if not
    xor ch,ch            ; CX = parm length
    mov dx,offset Parameters    ; DS:DX => parms
    mov bx,handle          ; BX = device handle
    mov ah,FWRITE          ; Write parms to device
    int DOS
    mov dx,offset Execute      ; Execute the parms
    mov cx,1            ; Writing one byte
    mov bx,handle          ; Device handle
    mov ah,FWRITE          ; Write "#" to device
    int DOS
; ----- Get and display device status
A2:
    mov dx,offset StatInsert    ; DS:DX => where to put status
    mov cx,0FFH           ; Ask for lots of data; DOS will ...
                    ; ... fetch only until CR found.
    mov bx,handle          ; Device handle
    mov ah,FREAD          ; Read device info
    int DOS
    mov cx,ax            ; CX = actual # bytes read
    mov di,offset StatInsert    ; Where the stat data is stored
    add di,cx            ; Add length of input read
    mov al,CR            ; Store a CR/LF/'$' at end
    cld
    stosb
    mov al,LF
    stosb
    mov al,'$'
    stosb
    mov dx,offset Status      ; Write status to stdout
    mov ah,PRINT
    int DOS
exit:
    int TERMINATE          ; Exit to DOS
main endp
code ends
end main


</div> </div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 汇编源码系列之burnout

相关文章

  • 2017-06-28汇编结构类型转换快速操作
  • 2017-06-28汇编源码系列之ctrladel
  • 2017-06-28汇编IDE的选择与配置
  • 2017-06-28Game Faster V1.0
  • 2017-06-28汇编源代码之硬盘保护锁
  • 2017-06-28汇编源码系列之hdr
  • 2017-06-28通用控件详解
  • 2017-06-28汇编源码系列之frespace
  • 2017-06-17通用数据传送指令
  • 2017-06-28汇编教程之通用控件

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 汇编语言的艺术-准备工作(一)
    • 汇编源代码之MAKE SOUNDS(发声)
    • 汇编源码系列之gameport
    • Win32汇编小试
    • 汇编教程:获得结果
    • 存储器和端口
    • 汇编教程:汇编语言编程实例
    • 汇编语言的基本知识
    • 汇编源码系列之col
    • 汇编IDE的选择与配置

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有