当前位置:文档之家› aspen fortran子程序的编译、连接、运行

aspen fortran子程序的编译、连接、运行

aspen fortran子程序的编译、连接、运行
aspen fortran子程序的编译、连接、运行

Aspen plus fortran子程序的编译、连接与运行

Aspen Plus 可以用来模拟反应精馏,但提供的动力学方程形式比较死板,很多类型的动力学方程都不能直接输入,不得不外接一个fortran子程序。本来用到fortran的机会就不多,所以会的人也不多。何况编写好fortran子程序后,还要用fortran编译器来编译生成obj文件,而且每次运行的时候都得连接一次,比较麻烦。我的电脑以前是装了编译器这些软件的,但最近出了问题,只能编译fortran子程序,运行aspen外接fortran子程序的时候就会出错。恰好这几天要帮师兄写个fortran子程序,写完后需要调试,但又运行不了,重装呢也没把握,想起网上有兄弟说过可以用asplink命令生成一个dll文件,这样就不用运行aspen的时候每次都连接编译器了。于是找来资料学习学习,居然成功了,欣喜之余,分享给大家。第一步当然是编写动力学子程序了(此处省略若干字)

第二步编译写好的动力学子程序(以网友soaty的动力学子程序为例)

打开Aspen Plus Simulation Engine

打开后是这样的

接下来改变文件夹路径,转到存放动力学子程序的那个文件夹

比如我的文件路径是C:\ProgramData\AspenTech\Aspen Plus V7.1\IPP

于是输入cd C:\ProgramData\AspenTech\Aspen Plus V7.1\IPP

回车后就转到这个文件夹了,这时候就可以进行编译了:编译命令:aspcomp 输入命令aspcomp RIPPA.f,回车

到文件夹一看你会发现已经生成了obj文件了,

第二步就完成了

第三步:生成obj文件的OPT文件

这个很简单,只需要在文件夹里面先新建一个文本文件,然后把名字改为

RIPPA_LIST_OBJ,双击打开文本文件,在里面先添加上刚刚生成的obj文件的路径(就是我们第一步提到的那个文件夹路径加上最后生成的RIPPA.obj就可以了

最后把txt格式改成opt格式就行了

第四步:链接第二步生成的OBJ文件,生成dll文件

命令格式:ASPLINK [DLOPT dloptfile] libname

Dloptfile是在刚刚生成的OPT文件的文件名,

Libname是给要生成的dll文件指定一个文件名

于是我们输入asplink [dlopt RIPPA_LIST_OBJ.opt] RIPPA 回车

(这里如果输入的命令是ASPLINK libname 就会链接这个文件夹下所有的OBJ文件,如果你的文件夹下刚好有多个OBJ文件,那么一般不能成功生成dll文件)

第五步:生成dll文件的opt文件,和第三步类似

贴个图好了,大家参考第三步

把txt格式改成opt格式,这时所有的编译链接都完成了,我们就可以在没有安装fortran编译器的电脑上运行带fortran的子程序的Aspen Plus文件了

首先打开BKP文件后,点击RUN——settings——Engine Files——Linker

填入dll文件的OPT文件名

RIPPA_LOC_DLL.opt

点击确定,这时,不出意外,就可以运行aspen了

注意:上面提到的这些文件必须放到一个文件夹里面,如果您下载了我的文件更改了文件夹的目录就需要在那两个OPT文件中更改成您自己的文件夹目录。

需要说明的是我提供的这个例子的模拟有问题,物性参数、模拟结果都有问题,感兴趣的朋友可以调试下。

祝好运。

Ubuntu编译安装Linux内核过程(整理版)

Ubuntu编译Linux内核过程 一、首先解决Ubuntu代理上网的问题 1、这种方法要用到/etc/apt/文件夹下的apt.conf文件。如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用这种方式。 注意:某些情况下,系统安装过程中没有建立apt配置文件。下面的操作将视情况修改现有的配置文件或者新建配置文件。 sudo gedit /etc/apt/apt.conf在您的apt.conf文件中加入下面这行(根据你的实际情况替换yourproxyaddress和proxyport)。Acquire::http::Proxy "http://yourproxyaddress:proxyport";保存apt.conf文件。 如果代理服务器需要登录,那么可以在指定代理服务器地址的时候,用如下格式(根据情况把username,password, yourproxyaddress 和proxyport替换为相应内容): http_proxy=http://username:password@yourproxyaddress:proxyp ort 2、然后在新立得设置http代理,在系统--系统管理--新立得软件包管理器--设置--首选项--网络里也要设置http的代理 二、下载源代码和编译软件的准备 下载内核源代码:https://www.doczj.com/doc/b317832266.html,/ 注意,点击2.6.39.3内核的F版,即完整版。

如果你懒得去网站点联接,运行下列命令: 代码: $cd ~ $wget https://www.doczj.com/doc/b317832266.html,/pub/linux/kernel/v2.6/linux-2.6.39.3. tar.bz2 安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig 等等和编译内核相关的工具。 安装不了,请检查/etc/apt/sources.list 文件。 安装所需工具包有关命令: 代码: $sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot 三、解压源代码 注意,网上很多教程上说应该解压到 /usr/src,纯属以讹传讹,linux掌门人linus说解压到任何目录上都可以。当然,linus的说法是正确的。先将压缩包复制到usr/src目录下,然后将压缩包解压到user/src目录下。 如果压缩包现在放在个人主目录的桌面上,则运行下列命令: 代码: $sudo cp Desktop/linux-2.6.39.3.tar.bz2 /usr/src

单片机循环程序及子程序设计

循环程序及子程序设计 1、软件延时 【实验原理】 延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序的循环次数,一旦晶振确定以后,则主要是如何设计与计算需给定的延时循环次数。 汇编语言常用延时程序所用到的指令 指令占用机器周期数 MOV Rn,#Data 1 DJNZ Rn,rel 2 RET 2 NOP 1 【实验程序】 编写15us、5ms、1s延时程序 (1)15us延时程序 MOV R0,#6 D1: DJNZ R0,D1 RET (2)5ms延时程序 MOV R1,#10 D1: MOV R0,#248 D2: DJNZ R0,D2 DJNZ R1,D1 RET (3)1s延时程序 MOV R2,#8 D1: MOV R1,#249 D2: MOV R0,#250 D3: DJNZ R0,D3 DJNZ R1,D2 DJNZ R2,D1 RET

【实验要求】 (1)能根据延时要求设计与计算需给定的延时循环次数。 (2)运行源程序检查结果。 2、拉幕灯:使8个发光二极管顺序点亮并保持,然后按相反顺序变化,形如 拉幕效果。 【实验程序】 ORG 0000H START: MOV R2,#08H ;设置循环次数 MOV A,#01H ;送显示模式字 NEXT: MOV P0,A ;点亮连接P0.0的发光二极管 ACALL DELAY ;调用延时子程序 SETB C ;Cy置1 RLC A ;左移一位,改变显示模式字 DJNZ R2,NEXT ;循环次数减1,不为零,继续点亮下面一个二极管 MOV R2,#08H ;设置循环次数 MOV A,#7FH ;送显示模式字 NEXT1: MOV P0,A ;灭掉连接P0.0的发光二极管 ACALL DELAY ;调用延时子程序 CLR C ;Cy清零 RRC A ;右移一位,改变显示模式字 DJNZ R2,NEXT1 ;循环次数减1,不为零,继续灭掉下面一个二极管 ACALL DELAY ;调用延时子程序 SJMP START ;无限循环 DELAY: MOV R3,#080H ;延时子程序开始 DEL2: MOV R4,#000H DEL1: NOP 【实验要求】 (1)可修改延时子程序中的R3和R4中从而改变灯亮或暗的时间,并注意观察;(2)运行源程序检查结果; (3)将程序烧录到芯片上,在开发板上观察实际拉幕灯的效果,并可进一步改变程序来观察实验的结果。

Ubuntu下Android源码修改、编译及运行、launcher定制

环境 Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统 GCC版本:gcc version 4.5.2 Java版本:java version "1.6.0_26" 下载android源码前注意: 1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。 2、保证Ubuntu系统进行Internet访问。 联网方法:采用拨号进行连接。相关操作步骤如下所示: 1、虚拟机→设置→硬件→网络适配器→网络连接→桥接 2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下: $ pppoeconf //打开后输入上网账号跟密码,确认保存 $ sudo pon dsl-provider //上网连接命令 经过这两个步骤后就可以进行上网了。 Android源码编译所依赖的tools 01.$ sudo apt-get update 02.$ sudo apt-get -y install git-core 03.$ sudo apt-get -y install gnupg 04.$ sudo apt-get -y install sun-java6-jdk flex 05.$ sudo apt-get -y install bison 06.$ sudo apt-get -y install gperf 07.$ sudo apt-get -y install libsdl-dev 08.$ sudo apt-get -y install libesd0-dev 09.$ sudo apt-get -y install libwxgtk2.6-dev 10.$ sudo apt-get -y install build-essential 11.$ sudo apt-get -y install zip 12.$ sudo apt-get -y install curl 13.$ sudo apt-get -y install libncurses5-dev 14.$ sudo apt-get -y install zlib1g-dev 15.$ sudo apt-get -y install valgrind 注意:(如果是32bit的系统的话,则要更改几个Android.mk文件) 01./external/clearsilver/cgi/Android.mk 02./external/clearsilver/java-jni/Android.mk 03./external/clearsilver/util/Android.mk 04./external/clearsilver/cs/Android.mk 用gedit打开,修改m64为m32即可 另外 将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为: ifneq (i686,$(findstring i686,$(build_arch)))

如何安装Linux内核源代码

如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux 内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总是升级到最新版本。 使用Git 由Linus领头的内核开发队伍从几年前就开始使用Git版本控制系统管理Linux内核了(参考阅读:什么是Git?),而Git项目本身也是由Linus创建的,它和传统的CVS不一样,Git是分布式的,因此它的用法和工作流程很多开发人员可能会感到很陌生,但我强烈建议使用Git下载和管理Linux内核源代码。 你可以使用下面的Git命令获取Linus内核代码树的最新“推送”版本: $ git clone git://https://www.doczj.com/doc/b317832266.html,/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令将你的代码树与Linus的代码树最新状态同步: $ git pull 安装内核源代码 内核包有GNU zip(gzip)和bzip2格式。Bzip2是默认和首选格式,因为它的压缩比通常比gzip更好,bzip2格式的Linux内核包一般采用linux-x.y.z.tar.bz2形式的文件名,这里的x.y.z是内核源代码的具体版本号,下载到源代码包后,解压和抽取就很简单了,如果你下载的是bzip2包,运行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下载的是gzip包,则运行: $ tar xvzf linux-x.y.z.tar.gz 无论执行上面哪一个命令,最后都会将源代码解压和抽取到linux-x.y.z目录下,如果你使用Git下载和管理内核源代码,你不需要下载tar包,只需要运行git clone命令,它就会自动下载和解压。 内核源代码通常都会安装到/usr/src/linux下,但在开发的时候最好不要使用这个源代码树,因为针对你的C库编译的内核版本通常也链接到这里的。 应用补丁

在Ubuntu上编译android

在Ubuntu7.10上编译android 1 概述 上个星期看到android开放源代码的消息,虽然觉得Google的这个动作会对业界产生很大影响,但没有时间仔细看,只浏览了Project layout。今天上午一个网友在mail中说已经编译、运行过android。我趁着中午休息时间,在一个Ubuntu7.10的虚拟机上编译、运行了一下。 我在这个虚拟机上编译过openmoko、poky。相对于这两个使用OpenEmbedded的平台,android的编译要简单一些,快一些。我在编译openmoko和poky时,将所有下载包都保存在一个目录中,将编译目录的sources子目录指向这个目录。这样做,一方面即使以后有些链接失效,也还可以编起来(其实编译时都不需要连接外网);另一方面在重新编译时,不用重新下载,可以加快编译速度。即使这样,完全编译一次poky也要一个晚上。编译android时,下载用了1个小时,编译也只需要1个小时。 2 编译中的两个小问题 2.1 python和JDK Google网站对编译过程的介绍还是很清晰的。不过在介绍其它软件包时,都给出了apt-get命令,却单独给出了python和JDK的链接地址,容易对读者产生误导,以为要手工安装这两个软件。其实这两个软件也应该通过apt-get安装。特别是python,如果从源代码安装,可能因为依赖其它软件,导致一些组件编译失败,影响android的编译。而且python 2.6的源代码包没有提供make uninstall,卸载也比较麻烦。其实我们只需要一个apt-get命令,就可以安装所有依赖的软件。 2.2 "fatal: git 1.5.4 or later required" 在Ubuntu7.10上执行repo init时,会出现"fatal: git 1.5.4 or later required"的错误提示。在Ubuntu8.04上编译没有这个问题。下面的流程里会介绍怎样解决这个问题。 3 在Ubuntu7.10上的编译流程

在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核

在ubuntu 10.10(2.6.35.22) 编译安装linux-2.6.35.13内核 第一步:准备工作 打开终端获得root权限:sudo su 然后安装编译内核时需要的工具: apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make等) kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具) libncurses5-dev (make menuconfig要调用的) libqt3-headers (make xconfig要调用的) 其他工具在升级过程中可以按提示安装 第二步:到https://www.doczj.com/doc/b317832266.html,下载内核源代码linux-2.6.35.13.tar.gz 假设下载在root目录(具体路径个人喜好),然后解压到/usr/src/linux-2.6.35.13目录里 tar zxvf /root/linux-2.6.35.13.tar.gz -C /usr/src 解压后会在/usr/src生成新文件夹linux-2.6.35.13 第三步:配置 把正在使用中的内核配置文件/usr/src/linux-headers-2.6.35-22-generic/.config 拷到/usr/src/linux-2.6.35.13目录下 cp /usr/src/linux-headers-2.6.35-22-generic/.config /usr/src/linux-2.6.35.13 执行: cd /usr/src/linux-2.6.35.13 make menuconfig 终端会弹出一个配置界面,注意主菜单最后有两项: Load an Alternate Configuration File Save an Alternate Configuration File 先选Load an Alternate Configuration File,意思是利用当前的内核配置详单来设置将要编译的内核,然后选Save an Alternate Configuration File,最后退出配置界面。 第四步:开如编译安装新内核 //执行:sudo make mrproper (清除以前曾经编译过的旧文件,如果你是第一次编译,可不执行) //上面这个操作会把前面拷贝的.config干掉,所以。。。你懂的。。。 执行:sudo make(编译,可以加-j4,如果你CPU是双核心,够牛的话,因为可以提高速度) 然后:sudo make install(安装内核文件到/boot目录,安装过程会自动修改GRUB启动菜单) 再:sudo make modules(编译内核需要的模块) 再:sudo make modules_install(安装模块到/lib/modules目录) 最后创建initrd文件: mkinitramfs -o /boot/initrd.img-2.6.35.13

Android_4.2_源码下载和编译环境安装及Android_4.2_源码编译

Android 4.2源码的下载和编译环境的安装及源码的编译Google于2012.11.14发布了Android4.2的源码,下面把本人在ubuntu10.04 的64位 系统上下载源码,和编译源码做个记录备份,也供有需要的人参考,若是在下载编译安装Android源代码遇到问题,可加QQ群交流: 217706590,难免有错,敬请见谅,还忘勿吝啬指出。 源代码下载、编译环境安装、源代码编译和运行模拟器的可能出现的一些错误在本文最后一章节,若出现类似错误,可以参考。 1、源码的下载 源代码的下载,首先需要安装以下软件:curl 和git-core 1.1安装curl: 在终端中执行:sudo apt-get install curl 1.2安装git-core 1.2.1在用户目录下新建bin文件 在终端中执行:mkdir ~/bin 将~/bin添加环境变量,作用是:要将git软件下载安装在此目录,在别的目录运行可能会找不到此软件,所以要添加到环境变量中 在终端中执行:PA TH=~/bin:$PATH 1.2.2安装git-core 在终端中执行:curl https://https://www.doczj.com/doc/b317832266.html,/dl/googlesource/git-repo/repo§> ~/bin/repo 给repo执行权限:chmod a+x ~/bin/repo 1.3 下载源代码 1.3.1进入要源代码将要保存的目录 如我的源代码保存在:、/opt/android/src 在终端中执行:cd /opt/android/src 进入到src目录中 1.3.2 获取repo最新的配置 repo init -u https://https://www.doczj.com/doc/b317832266.html,/platform/manifest§ 若是执行错误则用以下命令: ~/bin/repo init -u https://https://www.doczj.com/doc/b317832266.html,/platform/manifest§ 1.3.3 下载源代码 对于下载不同版本的android,指定一个manifest分支(即只指明android对应的版

Ubuntu下编译安装FFmpeg

一个简单的ns2实验全过程 实验名称:比较tcp和udp的丢包行为 试验目的: 1. 熟练用ns2做网络仿真试验的整个流程; 2. 练习写tcl脚本,了解怎么应用http和rtp; 3. 练习用awk处理trace数据,了解怎么计算丢包率; 4. 练习用gnuplot绘制曲线图,熟练gnuplot的使用。 实验步骤: 1。确定网络拓扑。 一个简单的三个节点的拓扑,两个运行cbr(const-bitrate)应用的发送结点,一个接收结点。一条链路使用tcp链接,一条链路使用udp连接。如图。 2。写tcl脚本。 # jiqing 2007-6-5 # this script is to compare the loss rates of http and rtp. set ns [new Simulator] #open a nam trace file set nf [open out.nam w] $ns namtrace-all $nf #open a trace file set tf [open out.tr w] $ns trace-all $tf #finish procedure proc finish {} { global ns nf tf $ns flush-trace close $nf close $tf exec ./nam out.nam & exit 0

} #create nodes set node(http) [$ns node] set node(rtp) [$ns node] set node(recv) [$ns node] #create links $ns duplex-link $node(http) $node(recv) 0.9Mb 10ms DropTail $ns duplex-link $node(rtp) $node(recv) 0.9Mb 10ms DropTail #set queue size $ns queue-limit $node(http) $node(recv) 10 $ns queue-limit $node(rtp) $node(recv) 10 #relayout nodes $ns duplex-link-op $node(http) $node(recv) orient right-down $ns duplex-link-op $node(rtp) $node(recv) orient right-up #set colors $ns color 1 blue $ns color 2 red #set a tcp connection set tcp [new Agent/TCP] $ns attach-agent $node(http) $tcp set sink [new Agent/TCPSink] $ns attach-agent $node(recv) $sink $ns connect $tcp $sink $tcp set fid_ 1 #set a cbr above tcp connection set cbr(http) [new Application/Traffic/CBR] $cbr(http) attach-agent $tcp $cbr(http) set type_ CBR $cbr(http) set packet_size_ 1000 $cbr(http) set rate_ 1mb $cbr(http) set random_ false #set a rtp connection set rtp [new Agent/UDP] $ns attach-agent $node(rtp) $rtp set null [new Agent/Null] $ns attach-agent $node(recv) $null

32位Ubuntu 11.10下android2.3.7源码下载与编译小结

32位Ubuntu 11.10下android2.3.7源码下载与编译小结 1、我是在vmware下安装ubuntu 11.10的,这个网上资料很多,不多说了。我给ubuntu分了25g硬盘和1g内存。 2、请参照https://www.doczj.com/doc/b317832266.html,/source。 初始化编译环境 检查一下包是否安装: Python 2.4-2.7 Git 1.5.4 或更高版本 没有话可以sudo apt-get install..安装一下 JDK 6 因为是编译android2.3以上,如果编译2.2以下需要JDK5 安装JDK6: $ sudo add-apt-repository"deb https://www.doczj.com/doc/b317832266.html,/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk 如果下载速度不行,可以先把ubuntu的更新源改成网易的源,可参考:http://bolg.malu.me/html/2010/279.html。 其他需要安装的包: 我安装了如下包:官网上那是64位需要安装的包,我是32位的有些不一样。 $ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils 3、下面开始下载源码 首先安装repo(是一个便于git管理的工具) $ mkdir~/bin $ PATH=~/bin:$PATH $ curl https://https://www.doczj.com/doc/b317832266.html,/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x~/bin/repo 初始化repo client $ mkdir android2.3.7 $ cd android2.3.7 初始化repo,我是使用的下面的地址,使用官网地址时出现了网络错误 $ repo init-u https://www.doczj.com/doc/b317832266.html,/platform/manifest.git -b android-2.3.7_r1 按照提示输入用户名和邮箱。 接着

Ubuntu下编译Android源码全过程

Ubuntu下编译Android源码全过程(转) 源码, 编译, Ubuntu, Android 一、获取Android源代码 Git是LinuxTorvalds(Linux之父)为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(Repository),许多个工作目录(WorkingCopy),而在Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNUArch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服务器上。 因为Android是由Kernel、Dalvik、Bionic、Prebuilt、build等多个项目组成,如果我们分别使用Git来逐个获取显得很麻烦,所以Android项目编写了一个名为Repo的Python 的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。 在Ubuntu 8.04上安装Git只需要设定正确的更新源,然后使用apt-get就可以了,apt-get 是一条Linux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或 操作系统。 apt-get命令一般需要root权限执行,所以一般跟着sudo命令。 sudo apt-get install git-core curl 这条命令会从互联网的软件仓库中安装git-core和curl。 其中curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持很多协议,包括FTP、FTPS、HTTP、HTTPS、TELENT等,我们需要安装它从网络上获取Repo脚本文件。 curl https://www.doczj.com/doc/b317832266.html,/repo >~/bin/repo 这句命令会下载repo脚本文件到当前主目录的/bin目录下,并保存在文件repo中。 最后我们需要给repo文件可执行权限

子程序设计和系统功能调用例题

例8.2.1试设计一程序,完成两个长补码的加法,其中两个长补码的长度是相同的,并且采用低地址存放低位,高地址存放高位的方式存储。加法功能使用子程序实现,两个长补码的起始地址、长补码的长度(以字为单位)、运算结果的起始地址均由主程序以入口参数的形式传递给子程序;运算是否溢出使用一个字节标志来表示,00H表示运算无溢出,0FFH 表示运算溢出,子程序将此溢出标志以出口参数的形式传递给主程序。本例中参数传递方式采用寄存器传递方式。 1)设计参数传递约定 题目已指明参数传递为寄存器传递方式,这里只需要具体约定寄存器与参数间的对应关系。在本例中,我们约定主程序通过SI、DI寄存器传递两个长补码的起始偏移量(认为两个长补码位于同一数据段,并且段基值保存到DS中),通过CX寄存器传递补码的长度,通过BX寄存器传递运算结果的起始偏移量(认为段基值已保存在DS中);并且,我们约定子程序通过DL寄存器传递溢出标志。 2)源程序设计 参数传递约定设计完成后,我们开始源程序设计,主程序与子程序的相应代码如下所示。DA TA SEGMENT V AR1 DW 5482H, 669EH, 02C7H, 14B2H, 0C254H V AR2 DW 8C2BH, 0C24CH, 0AB12H, 357AH, 41A5H LEN EQU $-V AR2 SUM DW LEN DUP(0) ; 用于保存运算结果 OVR DB ? ; 用于保存溢出标志 DA TA ENDS STACK1 SEGMENT STACK ; 子程序设计必须使用堆栈段DW 40H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS: CODE, DS: DA TA, SS: STACK1

图文介绍ubuntu下编译安装QT开源版

1,下载开源包 在ubuntu里打开默认浏览器输入下载地址 下载地址为:ftp://https://www.doczj.com/doc/b317832266.html,/qt/source/回车如下图所示,好多安装包啊,找哪个呢? 在页面上ctrl+f快速定位安装包,如下图: Qt-x11-opensource-src-4.5.3.tar.gz 好了,下载完毕,开始我们的安装之旅吧!!! 提示:你知道下载的文件包被放在哪里了么? 答:安装包下载后默认放在了/home/xq-y/下载/ 文件夹下。如下图所示:

上面是鼠标查看安装包的位置,现在我用命令行来查看安装包 都知道上面的命令是上面意思吧? 如果你不知道!!!就尽快补补,,, 2,开始我们的安装之旅!! ①,把下载好的文件解压到/usr/local/ 文件目录下,如下图所示!! ②,确定你的机器安装了g++,如果没安装,请执行下面的命令进行安装(g++编译源码) Sudo apt-get install g++ ③,继续安装libX11-dev和libXext-dev和libXtst-dev(不懂这个是什么请百度或者google),执行如下命令进行安装: sudo apt-get install libX11-dev libXext-dev libXtst-dev 如果在安装的过程中遇到如下错误

请按照提示执行: sudo apt-get update install libX11-dev libXext-dev libXtst-dev。。 如果你不装XLib库,在编译X11平台时会接收到如下错误提示: Basic XLib functionality test failed! You might need to modify the include and library search paths by editin ④,进入我们刚才解压在/usr/local/下面的qt4.5.3开源包, 如下图所示: 然后运行configure,命令如下: 在整个的编译过程中,configure这一步很关键。configure的作用有两个,一是生成平台相关的qmake;二是配置Qt的Feature,比如源文件放在哪里,库在哪里,是否支持OpenGL等等。 要查看configure的配置选项列表,可以运行./configure -help命令。 如果configure失败,可以以使用-v选项查看具体的原因,命令是./configure -v 如果以后需要在这次配置的基础上更改选项,先要运行make confclean或者make clean命令以清除之前的配置。 ⑤,执行make,时间比较长,大约2小时。 这一步是根据configure时由qmake生成的makefile来编译QT库。只要前面配置好了,一般不会出什么问题。 这样将会生成Qt库,同时也会编译所有的演示程序、示例程序和工具软件。在某些系统中,make命令称为gmake。 ⑥,安装QT 输入指令 make install 安装QT,如果权限不够前面加个sudo(ubuntu下),这样就可以把Qt安装到/usr/local/Trolltech/Qt-4.5.3目录中。如果要改变安装路径,那么可以在configure命令的后面使用-prefix选项来做到这一点。 3,环境变量的设置 ①,如图:

微机原理与接口技术6-调用子程序指令

(五)控制转移指令 4. 调用子程序指令 4.1段内直接(相对)调用:子程序在同一代码段中,子程序相对地址(十六位偏移量)放在指令编码中。用于调用一个 不知确切地址,但知标号的子程序。 格式:CALL SUBR1;SUBR1为子程序入口标号,子程序相对地址放在指令编码中,三字节指令。 操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②IP+D16→IP 4.2段内间接(绝对)调用:子程序在同一代码段中,子程序的入口地址(绝对地址)存放在寄存器或存贮单元中(两字 节或一字),用于调用一个已知确切地址的子程序。 格式:CALL (NEAR PTR) OPRD;OPRD为寄存器或存贮器,存放两字节的子程序入口偏移地址。 操作:①IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP;②〔OPRD〕→IP(传送一个字) 4.3段间直接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)放在指令编码中。 一般用于调用一个不知确切地址,但知标号的子程序。 格式:CALL SUBR2;SUBR2为子程序入口标号,五字节指令。 操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP; ③置新IP:指令第2、3字节→IP;④置新CS:指令第4、5字节→CS。 4.4 段间间接(绝对)调用:子程序不在同一代码段中,子程序的入口地址(偏移地址及新的段地址)在指定的存贮单元 (连续四个字节)中。一般用于调用一个已知确切入口地址的子程序。 格式:CALL DWORD PTR OPRD;OPRD为存贮器,存放四字节的子程序入口地址。 操作:①CS入栈:CS H→(SP-1),CS L→(SP-2),SP-2→SP;②IP入栈:IP H→(SP-1),IP L→(SP-2),SP-2→SP; ③置新IP:(EA)→IP(传送一个字);④置新CS:(EA+2)→CS(传送一个字)。 5. 返回指令放在子程序末尾,以在完成子程序后返回主程序。 5.1段内返回段内调用(不管是段内直接还是段内间接调用)返回 格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP。 5.2段内带立即数返回 格式:RET EXP;EXP是一个常数,也可为一表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。 操作:①IP出栈:(SP)→IP,SP+2→SP;②修改堆栈指针:SP+D16→SP。 5.3段间返回段间调用(不管是段间直接还是段间间接调用)返回 格式:RET 操作:IP出栈即(SP)→IP,SP+2→SP;CS出栈即(SP)→CS,SP+2→SP。 5.4段间带立即数返回 格式:RET EXP;EXP为常数或表达式,将此常数或由表达式计算出的常数看成一个16位的位移量D16,用以出栈后修改堆栈指针。 操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③修改堆栈指针:SP+D16→SP。!CALL指令与RET指令均不影响标志。 6. 中断指令 6.1中断格式:INT N;N#中断指令,两字节指令(CD N),N为0~255D常数,但N≠3。 操作:①PSW入栈:PSW→(SP),SP-2→SP;②清除TF、IF;③CS入栈:CS→(SP),SP-2→SP; ④IP入栈:IP→(SP),SP-2→SP;⑤进入N#中断:0000H段中(N?4)→IP, (N?4+2)→CS。 6.2溢出中断格式:INTO;功能相当于4号中断,但为一字节指令(CE)。 操作:如OF=1,则①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤进入4#中断:(10H)→IP, (12H)→CS。 6.3断点中断指令格式:INT 3;一字节指令(CC),用于在DEBUG中调试程序。 操作:①PSW入栈;②清除TF、IF;③CS入栈;④IP入栈;⑤(000CH)→IP, (000EH)→CS,进入断点中断。 6.4从中断返回格式:IRET;任何中断都以IRET指令结束,以从中断返回主程序。 操作:①IP出栈:(SP)→IP,SP+2→SP;② CS出栈:(SP)→CS,SP+2→SP;③ PSW出栈(SP)→PSW,SP+2→SP。

快速搭建android5.1系统源码编译环境

1.安装ubuntu 编译Android 5.1需要ubuntu 64位的操作系统,在百度上搜索ubuntu,到ubuntu官网下载Ubuntu 64位桌面(desktop)版本,进行安装。安装完成后,需要更新一下ubuntu源。 Android5.1系统源码编译的磁盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,内存需要4G以上,否则容易出现编译错误等问题。 2.安装openjdk-7-jdk Android 5.1 用到的jdk不再是Oracle 的jdk ,而是开源的openjdk,在ubuntu安装好后,使用如下命令安装jdk: $sudo apt-get install openjdk-7-jdk 安装好后,设置环境变量:$sudo gedit /etc/profile 在profile文件末尾加上: JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export JAVA_HOME export PATH 3.安装编译依赖的软件 使用如下命令安装依赖软件: sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc 4.配置Cache 使用如下命令配置cache: $sudo apt-get install ccache $source ~/.bashrc 5.编译android系统源码 1,初始化编译环境 $. build/envsetup.sh 2,选择编译目标包

Ubuntu_10.04下编译Android源码

Ubuntu 10.04下编译Android源码全过程 一、获取Android源代码(hao!) Git是Linux Torvalds(Linux之父)为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制软件,它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(Repository),许多个工作目录(Working Copy),而在Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服务器上。 因为Android是由Kernel、Dalvik、Bionic、Prebuilt、build等多个项目组成,如果我们分别使用Git来逐个获取显得很麻烦,所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。 在Ubuntu 8.04上安装Git只需要设定正确的更新源,然后使用apt-get就可以了,apt-get是一条Linux命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。 apt-get命令一般需要root权限执行,所以一般跟着sudo命令。 sudo apt-get install git-core curl 这条命令会从互联网的软件仓库中安装git-core和curl。 其中curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持很多协议,包括FTP、FTPS、HTTP、HTTPS、TELENT等,我们需要安装它从网络上获取Repo脚本文件。 curl https://www.doczj.com/doc/b317832266.html,/repo >~/bin/repo 这句命令会下载repo脚本文件到当前主目录的/bin目录下,并保存在文件repo中。 最后我们需要给repo文件可执行权限 chmod a+x ~/bin/repo 接下来我们就可以利用repo脚本和Git、curl软件获取Android的源代码了:) 首先建一个目录,比如~/android。 然后使用下面命令获取源码: repo init –u git://https://www.doczj.com/doc/b317832266.html,/platform/manifest.git

Ubuntu 12.0 64位源码编译Android4.0

Ubuntu 12 64位编译Android 4.0.1源码问题和解决办法 系统满足的条件: 在VMware下,最好给客户虚拟机1.5G内存,30G以上的硬盘。 实现应该要安装的软件: For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems. Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree. Detailed instructions for Ubuntu and MacOS follow. In general you will need: You will need a 64-bit version of Ubuntu.Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master. $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so 源码编译过程中可能出现的问题: 1、 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1 make: *** 解决方法: gedit frameworks/base/libs/utils/Android.mk

相关主题
文本预览
相关文档 最新文档