《汇编语言 基于x86处理器》第十章 - 运行一个 16位实地址汇编程序
▶ 书上第 10 章,主要讲了宏,引用了一个 16 位实地址的程序,从代码开始到运行
● 代码
- ; main.asm
- INCLUDE Macros.inc
- IF IsDefined( RealMode )
- INCLUDE Irvine16.inc
- ELSE
- INCLUDE Irvine32.inc
- ENDIF
- .code
- main PROC
- Startup
- IF IsDefined( RealMode )
- mWrite <"The program is running in 16-bit Real mode.",0dh,0ah>
- ELSE
- mWrite <"The program is running in 32-bit Protective mode.",0dh,0ah>
- ENDIF
- exit
- main ENDP
- END main
● 使用 MASM 来编译,需要文件 Irvine16.inc,Irvine16.lib,Macros.inc 在同一目录下。关键选项 -DRealMode=1。
- REM make.bat
- @echo off
- REM +----configuration
- SET INCLUDE="D:\Code\assembler\book"
- SET LIB="D:\Code\assembler\book"
- REM +--------------------
- REM 调用 ML.EXE 汇编代码文件
- "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\ML.exe" /nologo -c -omf -Fl -Zi -DRealMode=1 main.asm
- if errorlevel 1 goto terminate
- REM 调用 LINK16.EXE 链接目标文件
- D:\Code\assembler\book\LINK16 main,,NUL,Irvine16;
- if errorlevel 1 goto terminate
- :terminate
- pause
● 在 DOSBOX 里运行(win10_x86-64不能直接运行 16位实地址程序)
《汇编语言 基于x86处理器》第十章 - 运行一个 16位实地址汇编程序的更多相关文章
- 《汇编语言 基于x86处理器》前五章的小程序
▶ 书中前五章的几个小程序,基本的运算操作,使用了作者的库 Irvine32 和 Irvine64(一开始以为作者网站过期了,各网站上找到的文件大小都不一样,最后发现是要搭梯子 Orz,顺利下载).注 ...
- 《汇编语言 基于x86处理器》第十章结构和宏部分的代码
▶ 书中第十章的程序,主要讲了结构与宏的使用 ● 代码,使用结构,对比是否对齐的性能差距 INCLUDE Irvine32.inc INCLUDE macros.inc structN STRUCT ...
- 《汇编语言 基于x86处理器》第十一章 MS-DOS 编程部分的代码 part 2
▶ 书中第十一章的程序,主要讲了 Windows 接口,在小黑框中进行程序交互 ● 在屏幕指定位置输出带自定义属性的文字 INCLUDE Irvine32.inc .data outHandle HA ...
- 《汇编语言 基于x86处理器》第十三章高级语言接口部分的代码 part 2
▶ 书中第十三章的程序,主要讲了汇编语言和 C/++ 相互调用的方法 ● 代码,汇编中调用 C++ 函数 ; subr.asm INCLUDE Irvine32.inc askForInteger P ...
- 《汇编语言 基于x86处理器》第九章字符串与数组部分的代码
▶ 书中第九章的程序,主要讲了字符串相关的输入.输出,以及冒泡排序.二分搜索 ● 代码,Irvine32 中的字符串库函数代码范例 INCLUDE Irvine32.inc .data str1 BY ...
- 《汇编语言 基于x86处理器》第七章整数运算部分的代码
▶ 书中第七章的程序,使用各种位移运算,加深了对内存.寄存器中整数类型变量存储的认识 ● 代码,双字数组右移 4 位 INCLUDE Irvine32.inc COUNT = ; 右移位数 .data ...
- 《汇编语言 基于x86处理器》第六章条件处理部分的代码
▶ 书中第六章的程序,使用了条件判断和跳转来实现一些功能 ● 代码,查找数组首个非零值 INCLUDE Irvine32.inc .data intArray SWORD , , , , , , , ...
- 《汇编语言 基于x86处理器》第十二章浮点数部分的代码
▶ 书中第十二章的程序,主要讲了 FPU 的指令和浮点数计算的过程 ● 代码,简单的 32 为浮点数测试 INCLUDE Irvine32.inc INCLUDE macros.inc .data f ...
- 《汇编语言 基于x86处理器》第八章高级过程部分的代码 - 两种规范计算数组元素的和
▶ 输入 Count 个 32 位有符号整数,计算他们的和 ● 代码,使用堆栈传参 ;// Sum_main.asm,主过程 INCLUDE Irvine32.inc EXTERN PromptFor ...
随机推荐
- sqlalchemy操作----外键关联,relationship
... #!_*_coding:utf-8_*_ #__author__:"Alex huang" import sqlalchemy from sqlalchemy import ...
- 打开RAD Studio XE5提示"displayNotification:内存不够"解决办法
操作方法: 在RAD Studio XE5快捷方式上鼠标右击选择属性,在弹出的快捷方式标签页中将目标(T):"C:\Program Files (x86)\Embarcadero\RAD S ...
- Xshell配置ssh使用密钥公钥(publice key)登录
ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步:1.生成密钥( ...
- 创建virtualenv虚拟环境
这个部分知识我在之前的随笔里记过笔记. 传送门:http://www.cnblogs.com/0bug/p/8598458.html 本文只演示Windos下virtualenv环境的使用: 首先,确 ...
- ubuntu--Supervisor进程管理工具
安装,这个程序使用python写的 sudo apt-get install supervisor 配置一个你需要的配置文件 //进入 /etc/supervisor/conf.d文件目录,配置一个r ...
- Myeclipse 2017安装
一.下载 Myeclipse官网下载地址:http://www.myeclipsecn.com/download/ 二.安装 安装详细步骤省略,仅仅是一路下一步即可,博主默认安装到了C盘,注意:安装完 ...
- Azure 认知服务 (1) 概述
<Windows Azure Platform 系列文章目录> 在笔者之前的文章中,介绍的都是Azure Infrastructure-as-a-Service (IaaS) 和Plat ...
- js跨域调用mvc ActionResult扩展
背景 最近2个项目中都用到了js跨域访问的知识,2个项目都需要主站与各个分站之间进行数据交互.状态同步等相关操作.浏览器本身是不允许进行跨域访问,在MVC中我们可以扩展一个方法来实现这个功能.在此大家 ...
- 好消息:手机上也可以使用Firebug功能了
做前端开发的小伙伴儿应该对火狐浏览器提供的Firebug工具很熟悉了吧,但是你知道怎么在手机上使用Firebug的控制台功能么(^_-) 现在谷歌浏览器提供了可以在电脑上模拟移动端界面的功能,但是在开 ...
- Multiresolution Analysis(多分辨率分析)
[注意:本文中所有的傅里叶变换和反变换均含对称因子$\frac{1}{\sqrt{2\pi}}$,且$z=e^{-ik\omega}$] 1. 多分辨率分析 1.1 概念 多分辨率分析指的是一系列$L ...