• 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
  • 微信公众号
您的位置:首页 > 程序设计 >汇编语言 > 汇编源码系列之fxn

汇编源码系列之fxn

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

匿名通过本文主要向大家介绍了fxn,fxn是什么意思,三菱fxn,c2-25fxn a00,汇编源码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
</div>

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

     name   FXN4BH
     page   55,132
     title   'FXN4BH --- demo PC-DOS EXEC function'
;
; FXN4BH --- demonstrate use of the
; PC-DOS 2.0 EXEC function call 4BH
;
; Copyright (c) 1983 by Ray Duncan
;
cr    equ    0dh    ;ASCII carriage return
lf    equ    0ah    ;ASCII line feed
               ;
cseg   segment  para public 'CODE'
               ;
     assume  cs:cseg,ds:data,ss:stack
               ;
demo   proc   far
               ;at entry DS & ES = PSP
     push   ds    ;Save address for final
     xor    ax,ax   ;FAR RET to PC-DOS on stack
     push   ax
               ;save copy of SS:SP for use
               ;after return from overlay
     mov    cs:STK_SEG,ss
     mov    cs:STK_PTR,sp
               ;
               ;Reserve 1000H bytes for
               ;this loader and release
               ;the rest of memory for
               ;use by the overlayed program.
     mov    bx,100h  ;ES=segment of PSP of loader
     mov    ah,4ah  ;BX=paragraphs to reserve
     int    21h
               ;make the messages in data
               ;segment addressable
     mov    ax,seg DATA
     mov    ds,ax
     mov    es,ax
               ;jump if memory
               ;de-allocation failed
     jc    ALLOC_ERR
               ;print memory successfully
               ;released
     mov    dx,offset MSG2
     mov    ah,9
     int    21h
               ;
               ;now load and execute
               ;the overlaid program.
     mov    dx,offset PGM_NAME
     mov    bx,offset PAR_BLK
     mov    al,0
     mov    ah,4bh
     int    21h
               ;restore stack pointers
               ;to state before EXEC call
     mov    ss,cs:STK_SEG
     mov    sp,cs:STK_PTR
               ;Make data segment
               ;addressable again
     mov    ax,seg DATA
     mov    ds,ax
               ;print message that loader
               ;successfully regained control
     mov    dx,offset MSG3
     mov    ah,9
     int    21h
               ;now exit to PC-DOS
     ret
alloc_err:          ;come here if memory
               ;cannot be released
     mov    dx,offset MSG1
     mov    ah,9
     int    21h    ;print error message and
     ret         ;exit to PC-DOS
               ;
demo   endp
               ;
               ;these two variables must
               ;reside in Code Segment so
               ;that they are addressable
               ;after return from overlay.
stk_seg dw    0     ;original SS contents
stk_ptr dw    0     ;original SP contents
               ;
cseg   ends
               ;declare a stack area
               ;for use by this loader
stack  segment  para stack 'STACK'
               ;allow 64 bytes in this case
     db    64 dup (?)
stack  ends
               ;declare data segment to
               ;contain variables and tables
data   segment  para public 'DATA'
;
msg1   db    cr,lf
     db    'Unable to release memory.'
     db    cr,lf,'$'
msg2   db    cr,lf
     db    'Memory above loader released.'
     db    cr,lf,'Now loading CHKDSK.COM.'
     db    cr,lf,'$'
msg3   db    cr,lf
     db    'Loader regained control from CHKDSK,'
     db    cr,lf
     db    'now making final exit to PC-DOS.'
     db    cr,lf,'$'
;
               ;drive, path, and name of program
               ;to be loaded and executed.
pgm_name db    'CHKDSK.COM',0
;
par_blk dw    ENVIR   ;segment address of
               ;environment descriptor
               ;
               ;full address of command line
               ;to be passed at offset 80H
     dw    offset CMD_LINE   ;in overlaid
     dw    seg CMD_LINE    ;program's PSP
               ;
               ;full address of default
               ;File Control Block to be
               ;passed at offset 5CH in
     dw    offset FCB1     ;overlaid
     dw    seg FCB1      ;program's PSP
               ;
               ;full address of default
               ;File Control Block to be
               ;passed at offset 6CH in
     dw    offset FCB2     ;overlaid
     dw    seg FCB2      ;program's PSP
;
               ;actual command line tail
               ;to be passed to overlay
cmd_line db    4,' *.*',cr,0
;
               ;first default FCB to
fcb1   db    0     ;be passed to overlay
     db    11 dup ('?')
     db    25 dup (0)
               ;second default FCB to
fcb2   db    0     ;be passed to overlay
     db    11 dup (' ')
     db    25 dup (0)
;
data   ends
               ;declare separate data
               ;segment to contain
               ;environment descriptor
envir  segment  para 'ENVIR'
               ;
               ;Search path used by PC-DOS
               ;to look for commands or
               ;batch files not found in
     db    'PATH=',0 ;the current directory
               ;
               ;Search path used by PC-DOS
               ;to locate COMMAND.COM
     db    'COMSPEC=A:COMMAND.COM',0
     db    0     ;extra 0 byte designates
               ;end of environment
envir  ends
     end    demo


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

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

  • 汇编源码系列之fxn

相关文章

  • 2017-06-28制作动态链接库
  • 2017-06-17加法指令
  • 2017-06-28通用控件详解
  • 2017-06-2880386保护方式简介
  • 2017-06-28汇编源码系列之basload
  • 2017-06-17什么是子程序?子程序的概念
  • 2017-06-28汇编源码系列之gameport
  • 2017-06-28汇编教程:启动画面
  • 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
  • 微信公众号

最近更新的内容

    • MASM的反反汇编技术
    • 几种基本的逻辑运算
    • 汇编DeviceIoControl接口详解
    • 存储器和端口
    • 汇编语言的艺术-基本认识(一)
    • 汇编教程:位图初步
    • 汇编教程:获得结果
    • Game Faster V1.0
    • DOS内部结构与BIOS的功能
    • 动态VXD学习

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

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