16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS
;以下是16位汇编 创建静态库,并调用静态库中的函数
;多文件汇编格式
;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译)
;第一种,编译方法
;1、masm main.asm 生成.obj文件
;2、masm lib.asm 生成.obj文件
;3、link main.obj lib.obj 生成.exe文件
;第二种,编译方法
;1、masm main.asm 生成.obj文件
;2、masm 16lib.asm 生成.obj文件
;3、lib 16lib.lib 16lib.obj 由.obj文件生成.lib文件,即静态库文件,可以做为函数库使用
;4、link main.obj 16lib.lib 由.obj .lib两个文件生成.exe文件
;=======================================
;(main.asm)
.model small
.stack 100h
.386
.data
Msg db "in my world! you know?",0
.code
extrn int21h_40h:far ;引用外部函数,注意:masm5.0用的是extrn ,少一个e字符
main PROC
mov ax,@data
mov ds,ax
push di
mov di,offset Msg
call int21h_40h
pop di
mov ax,4c00h
int 21h main
ENDP
END main
;==================================
;(16lib.asm)
.model small
.stack .data
.code
public int21h_40h ;定义外部函数
;********MS-DOS 中断 int 21h功能调用***********************
;--------int 21h 功能号 40h事例-------------
;说明:在标准输出上显示字符串
;输入参数:di = 字符串地址
;输出参数:无
int21h_40h proc far
xor cx,cx
mov dx,di ;在循环前保存参数,由于后面循环会改变di
;此处也是功能 40h 的参数
L1:
;计算字符串长度
cmp byte ptr[di],0
je L2
inc cx
inc di
jmp L1
L2:
;显示字符串到标准输出设备上
mov ah,40h
mov bx,1
int 21h
ret
int21h_40h endp
end
16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS的更多相关文章
- 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题
解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...
- bmp文件格式中rgb555与rgb888之间的转换,24位与16位位图的转换
今日,有同事问我.rgb555模式下的位图文件的格式问题,于是花了一下午的时间通过推測与測试,分析出了例如以下bmp文件在rgb555模式下的文件存储规律: 1:bmp文件的文件信息头中的biBitC ...
- 链接(extern、static关键词\头文件\静态库\共享库)
原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = ...
- iOS 创建静态库文件时去掉当中的Symbols
在project中创建静态库文件时.默认会将一些Symbols加到静态库文件里.这样做有两个缺点: 1.假设引用静态库文件的project中发生了bug.就会直接跳转到静态库的源代码. 也许有人问:静 ...
- gcc编译器创建和使用静态库、动态库
http://www.cnblogs.com/dyllove98/archive/2013/06/25/3155599.html 目录树结构: test/include/hello.h #ifdef ...
- Linux编译多个不同目录下的文件以及静态库、动态库的使用
先看两篇博文,作为基础知识.如果对C/C++编译链接过程都了解的话,可以跳过不看. http://www.firedragonpzy.com.cn/index.php/archives/2556 ht ...
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
1. 首先,如何制作一个静态库(lib)? 额, 对于静态库,我们知道,里头是不应该有Main函数,它只是一个配合文件.之所以称之为lib静态库,其实就是指,我们需要用到lib里头的函数时,我们才会去 ...
- plist文件无法打包进.a静态库中
问题: 之前一直在做静态库的编写与维护,也一直知道静态库的图片资源是没办法打进.a中的.可是突然有个想法.由于有非常多參数的配置是在一个plist文件里的.尽管也知道这是一个plist文件,可是想想和 ...
- 生成静态库.a文件和动态库.so文件
转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...
随机推荐
- 【转】HTML转义字符大全
ISO Latin-1字符集: — 制表符Horizontal tab — 换行Line feed — 回车Carriage Return — Space ! ! — 惊叹号Exclamati ...
- python爬虫——黑板客老师课程学习
程序: 目标url 内容提取 表现形式 为什么: 大数据——数据膨胀,信息太多了,不知道哪些信息适合你,例如谷歌搜索引擎. 垂直行业搜索——某一个行业的搜索,与搜索引擎最大的区别:搜索引擎是告诉你哪些 ...
- robot framework 安装配置
robot framework 是一款专门用作自动化测试的框架,提供了丰富的内置库,与第三方库,也支持用户自己编写的库,robot framework +library 可以 用来做ui的自动化测试, ...
- Docker 不能被外网正常访问
问题描述: 1. docker容器不能 被外部网络正常访问 2. docker所在服务器可以正常访问 3. docker启动时 报 ip_forward 错误 ARNING: IPv4 forward ...
- ORACLE分区--表分区
.love_flying_snow Oracle表分区 Oracle . 废话少说,直接讲分区语法. Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库 ...
- nullcon HackIM 2016 -- Crypto Question 3
After entring the luxurious condomium,you get the feel that you are in home of a yester Star. the ex ...
- zabbix3.0安装部署文档
zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白开的<ZABBIX从入门到精通v ...
- WIN32API 自定义颜色下拉列表控件
效果如下: 原创-转载请著名来源 1,新建颜色属性类“CNColor”: class CNColor { public: COLORREF m_crColor; //颜色RGB值 WCHAR m_cC ...
- 尝试一下代码高亮。。成功的话明天写一篇blog
using System; using System.Collections; using UnityEngine; public class Time : MonoBehaviour { // Us ...
- Web应用定时任务实现
一.需求: 项目上有时需要执行一些定时任务,比如:超过2天未处理的问题,邮件自动通知客服.对接人:3天未处理的问题,邮件自动通知客服.对接人和项目经理,同时标为‘紧急’状态:5天未处理的问题,邮件自动 ...