al源码
㈠ 汇编语言源代码急求!!!!!!
第一次发的还错了,调试成功的代码。
data segment
S db 'qwertyuiopasdfg','$' ;原字符串
S1 db 15 p (0)
db '$' ;目标字符串db '$'
data ends
assume cs:code,ds:data
code segment
start: mov ax,data ;加载DS
mov ds,ax
mov si,offset S ;字符源地址
mov dx,si ;显示原字符
mov ah,9
int 21h
mov cx,15 ;复制S字符串到S1
mov bx,offset S1
t:
mov al,[si]
mov [bx],al
inc si
inc bx
loop t
mov si,offset S1
mov cx,15 ;计数
ss1:
mov di,si ;di指向si的下一位
inc di
mov dx,1
ss2:
cmp dx,cx ;如果dx大于等于cx跳至s4
jae ss4
mov al,[si]
cmp al,[di] ;比较[si] [di]的值如果大于交换
jbe ss3
xchg al,[di]
mov [si],al
ss3:
inc di ;为下次循环做准备
inc dx
jmp ss2
ss4:
inc si ;指向下一个字符
loop ss1
mov dl,0ah ;显示回车换行
mov ah,2
int 21h
mov dl,0dh
int 21h
mov dx,offset S1 ;显示升序字符串
mov ah,9
int 21h
mov ah,0 ;等待字符输入
int 16h
mov ah,4ch ;结束
int 21h
code ends
end start
㈡ 网站源代码里有句话说 <td class=“center top” valign=“top” al
楼上的我无语了,直接翻译出来了。。。。
<td>是表格class=""选择器,有两个center和top,valign="top"居上对齐,align="left"是居左对齐。希望能够帮到您,谢谢。
㈢ 求汇编语言源代码(10进制数转16进制数)急求急求!!!!
data
segment
str
db
0ah,0dh
num
db
4
p(?),'H$'
tab
db
'0123456789ABCDEF'
data
ends
code
segment
assume
cs:code,ds:data
begin:
mov
ax,data
mov
ds,ax
;初始化代码段
xor
bx,bx
mov
cx,10
;进制
next:
mov
ah,1
int
21h
cmp
al,0dh
jz
conv
;如果是回车,表示输入结束,转换开始
push
ax
;保存输入值,当然还有AH,因为堆栈的存取必须以字为单位
mov
ax,bx
mul
cx
mov
bx,ax
;将先前的结果向上推一位
pop
ax
;取回本次输入
and
al,0fh
;屏蔽掉无用位,类SUB
AL,30H
xor
ah,ah
;高位归零
add
bx,ax
;合并本次输入
jmp
next
conv:
mov
ax,bx
;开始转换
mov
ch,4
lea
bx,tab
;没有见这个直接寻址表起什么用啊!!!
mov
cl,4
lea
si,num
lopa:
rol
ax,cl
;把高4位移到低4位
push
ax
and
ax,000fh
;取出低4位
mov
[si],al
;按地址由低到高的顺序将结果由高到底存放
inc
si
pop
ax
dec
ch
jnz
lopa
lea
dx,str
mov
ah,9
int
21h
;回车换行
mov
ah,4ch
int
21h
code
ends
end
begin
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;算法描述:
;总体来说是以二进制为中介,
;先将输入视为十进制,转换为二进制数保存在BX中
;然后再将这个二进制数转换为十六进制数保存在num开始的单元中
;十进制转换为二进制的过程:
;初始化:假设第一次输入前的输入为0
;对于每次输入,将前面输入的各位均提升一位,即百位变千位,十位变百位,个位变十位,然后当前的输入填到个位,重复该步操作直到遇到回车符
;二进制转换为十六进制:
;因为每4个二进制位可以由1个十六进制位表示,所以依次取出4个二进制位就可以
;①每次循环移动4位,将高4位移动到低4位后,取出低4位
;②将取出的数依次写入num开始的单元中
;③重复①-②4次
;输出时:(这段代码没有,所以我说,没有见直接寻址表起什么用)
;从num开始以字节为单位取数
;以得到的数字为偏移量,查表tab,得到对应的十六进制字符,输出,重复4次
㈣ 源代码是什么
说白了就是各种编程语言,你现在所用的所有软件都是用各种源代码编出来的,大概样子就像:
<!--STATUS OK--><html><head>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<title>网络搜索_源代码 </title>
<STYLE><!--
body,td,.p1,.p2,.i{font-family:arial}
body{margin:6px 0 0 0;background-color:#fff;color:#000;}
table{border:0}
TD{FONT-SIZE:9pt;LINE-HEIGHT:18px;}
.f14{FONT-SIZE:14px}
.f10{font-size:10.5pt}
.f16{font-size:16px;font-family:Arial}
.c{color:#7777CC;}
.p1{LINE-HEIGHT:120%;margin-left:-12pt}
.p2{width:100%;LINE-HEIGHT:120%;margin-left:-12pt}
.i{font-size:16px}
.t{COLOR:#0000cc;TEXT-DECORATION:none}
a.t:hover{TEXT-DECORATION:underline}
.p{padding-left:18px;font-size:14px;word-spacing:4px;}
.f{line-height:120%;font-size:100%;width:32em;padding-left:15px;word-break:break-all;word-wrap:break-word;}
.h{margin-left:8px;width:100%}
.s{width:8%;padding-left:10px; height:25px;}
.m,a.m:link{COLOR:#666666;font-size:100%;}
a.m:visited{COLOR:#660066;}
.g{color:#008000; font-size:12px;}
.r{ word-break:break-all;cursor:hand;width:238px;}
.bi {background-color:#D9E1F7;height:20px;margin-bottom:12px}
.pl{padding-left:3px;height:8px;padding-right:2px;font-size:14px;}
.Tit{height:21px; font-size:14px;}
.fB{ font-weight:bold;}
.mo,a.mo:link,a.mo:visited{COLOR:#666666;font-size:100%;line-height:10px;}
.htb{margin-bottom:5px;}
#ft{clear:both;line-height:20px;background:#E6E6E6;text-align:center}
#ft,#ft *{color:#77C;font-size:12px;font-family:Arial}
#ft span{color:#666}
--></STYLE>
<script><!--
function bq(form,fsr,fct){form.sr.value=fsr;form.ct.value=fct;form.action='/s';form.submit();return true;}
function h(obj,url){obj.style.behavior='url(#default#homepage)';obj.setHomePage(url);}
if (top.location != self.location) {top.location=self.location;}
function ga(o,e){if (document.getElementById){a=o.id.substring(1); p = "";r = "";g = e.target;if (g) { t = g.id;f = g.parentNode;if (f) {p = f.id;h = f.parentNode;if (h) r = h.id;}} else{h = e.srcElement;f = h.parentNode;if (f) p = f.id;t = h.id;}if (t==a || p==a || r==a) return true;window.open(document.getElementById(a).href,'_blank')}}
function ss(w){window.status=w;return true;}
function cs(){window.status='';}
function c(q){var p=window.document.location.href,sQ='',sV='';for(v in q){switch (v){case "title":sV=encodeURIComponent(q[v].replace(/<[^<>]+>/g,""));break;case "url":sV=escape(q[v]);break;default:sV=q[v]}sQ+=v+"="+sV+"&"} (new Image()).src="http://s..com/w.gif?q=%D4%B4%B4%FA%C2%EB&"+sQ+"path="+p+"&t="+new Date().getTime(); return true}
function al_c(A){while(A.tagName!="TABLE")A=A.parentNode;return A.getAttribute("id")}
//--></script></head>
<body onload="document.f1.reset();" link="#261CDC">
<table width="100%" height="54" align="center" cellpadding="0" cellspacing="0">
<form name=f1 action="/s">
<tr valign=middle>
<td width="100%" valign="top" style="padding-left:8px;width:137px;" nowrap>
<a href="http://www..com/"><img src="http://www..com/img/logo-yy.gif" border="0" width="137" height="46" alt="到网络首页"></a>
</td>
<td></td>
<td width="100%" valign="top">
<div class="Tit">
<a href="http://news..com/ns?cl=2&rn=20&tn=news&word=%D4%B4%B4%FA%C2%EB" onmousedown="return c({'fm':'tab','tab':'news'})">新闻</a><span class="fB">网页</span><a href="http://tieba..com/f?kw=%D4%B4%B4%FA%C2%EB" onmousedown="return c({'fm':'tab','tab':'tieba'})">贴吧</a><a href="http://..com/q?ct=17&pn=0&tn=ikaslist&rn=10&word=%D4%B4%B4%FA%C2%EB&fr=wwwt" onmousedown="return c({'fm':'tab','tab':''})">知道</a><a href="http://mp3..com/m?tn=mp3&ct=134217728&lm=-1&word=%D4%B4%B4%FA%C2%EB" onmousedown="return c({'fm':'tab','tab':'mp3'})">MP3</a><a href="http://image..com/i?tn=image&ct=201326592&lm=-1&cl=2&word=%D4%B4%B4%FA%C2%EB" onmousedown="return c({'fm':'tab','tab':'pic'})">图片</a><a href="http://video..com/v?ct=301989888&rn=20&pn=0&db=0&s=25&word=%D4%B4%B4%FA%C2%EB" onmousedown="return c({'fm':'tab','tab':'video'})">视频</a><a href="http://www..com/s?lm=0&si=&rn=10&ie=gb2312&ct=1048576&wd=%D4%B4%B4%FA%C2%EB&tn=" target="_blank" onmousedown="return c({'fm':'tab','tab':'dict'})">词典</a><!--bds<a href="$bdDSURL$">硬盘</a> -->
</div>
㈤ C#源代码编译成为本地代码的编译过程
很有兴趣的话,可以去阅读下JeffreyRitchie的《ClrviaC#》,目前出到第三版,英文好的话强烈推荐看英文版的,而且我有该电子书和实体书。
下面讲下我的理解:大致上不会出什么差错的,细节部分你可以参照上面的书籍!
1.首先,c#源码经过c#编译器被编译成托管模块(IL中间代码、元数据(Metadata))
2.然后,使用C#编译器以及程序集链接器(AssemblyLinker----AL.exe)将上述托管模块以及项目的资源文件Combine(整合)成一个程序集(Assembly)
上述程序集就是你所看到的exe文件或者dll文件等等,程序集中包含了manifest描述文件,是该程序集内容以及关系的一个清单,具体的内容你可以参见JR的书跟Java中的类似!
双击该exe运行的时候:
3.最后,运行时,CLR装载对应的程序集,使用内部的三个即时编译器(常用的为JIT),再去根据本机的环境去进行相应的优化(针对CPU优化等等),即时的翻译成本地机器指令去执行。
还有一个本地化代码生成工具,NGen.exe~~
这个最好能去看看那本JR的神作!细节不是我三言两语能讲清的~~
㈥ 求汇编语言源代码
输入、显示,使用二进制数?
㈦ 有一个疑惑,开源软件源码都知道了,那我做二次开发为什么还需要包含原许可证不包含我的软件也能跑起来
BSD
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
◆如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
◆如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
◆不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的着作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
AL2.0
Apache Licence是着名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的着作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
◆需要给代码的用户一份Apache Licence
◆如果你修改了代码,需要在被修改的文件中说明。
◆在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
◆如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
㈧ 这个源码公式到底有没有“未来函数”
AO:=SMA(AL,5,1)-SMA(AL,13,1);
这个语句里的sma就是未来函数,它是用n天过去+今天+n天未来计算函数值。
㈨ 如何解决源码包安装时的依赖性问题
动态可执行文件使用最初编译和链接程序时使用的库文件的共享对象名称来查找共享对象。它们在少数的几个标准位置查找,比如在/lib和/usr/lib目录及在LD_LIBRARY_PATH环境变量(主要用于指定查找共享库,比如我们在安装Oracle时指定路径,exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib)指定的目录中。顺便提一下,在这些库目录中找到的共享对象可能不是真正的文件;它们可能是指向位于其他位置的真实库文件的符号链接(但通常仍旧在标准库目录的一个目录中)。至少从系统管理员的观点是在用于创建共享库文件的共享库软件包的名称和共享库文件的名称之间通常没有什么关系。例如,GLIBC2.3软件包用于创建libc.so.6共享库文件。也从本示例中注意到,添加到共享库文件名结束的版本号(.6)跟用于创建它的版本号(2.3)没有关系。这是由共享库软件包开发人员有意完成的,以便GLIBC的新版本可以重用相同的共享库文件名libc.so.6。这允许您在系统上加载新版本的GLIBC,而不用中断动态链接到lib.so.6共享库文件的所有程序,当然假定新版本的GLIBC向后与动态可执行文件最初所链接的老版本GLIBC兼容。因此,即使库文件或共享对象文件有与它们相关的版本号,这些版本号也不能帮助你确定他们来自哪个版本的共享软件包。
注意:当将whatprovides选项用于rpm查询命令时,可以获得有关使用rpm软件包加载到系统的现有共享对象的信息。这种混乱是由下面的事实造成的:单个共享库文件可能支持某个范围的共享库软件包版本。例如,要检查soname库文件/lib/libc.so.6支持的GLIBC共享库软件包,运行下面的命令:
#objmp--all-headers/lib/libc.so.6|less
向下滚动此报告,直到到达Versiondefinitions:部分,以便查看libc.so.6共享库文件支持哪些GLIBC版本:
Versiondefinitions:
10x010x0865f4e6libc.so.6
20x000x0d696910GLIBC_2.0
30x000x0d696911GLIBC_2.1
GLIBC_2.0
40x000x09691f71GLIBC_2.1.1
GLIBC_2.1
50x000x09691f72GLIBC_2.1.2
GLIBC_2.1.1
60x000x09691f73GLIBC_2.1.3
GLIBC_2.1.2
70x000x0d696912GLIBC_2.2
GLIBC_2.1.3
80x000x09691a71GLIBC_2.2.1
GLIBC_2.2
90x000x09691a72GLIBC_2.2.2
GLIBC_2.2.1
100x000x09691a73GLIBC_2.2.3
GLIBC_2.2.2
110x000x09691a74GLIBC_2.2.4
GLIBC_2.2.3
120x000x09691a76GLIBC_2.2.6
GLIBC_2.2.4
130x000x0d696913GLIBC_2.3
GLIBC_2.2.6
140x000x09691972GLIBC_2.3.2
GLIBC_2.3
150x000x09691973GLIBC_2.3.3
GLIBC_2.3.2
160x000x09691974GLIBC_2.3.4
GLIBC_2.3.3
170x000x0d696914GLIBC_2.4
GLIBC_2.3.4
180x000x0d696915GLIBC_2.5
GLIBC_2.4
190x000x0963cf85GLIBC_PRIVATE
GLIBC_2.5
200x000x0b792650GCC_3.0
在本示例中,1ibc.so.6共享库文件支持原先为GLIBC版本2.0到2.5而开发的所有动态执行文件。注意:也可以使用objmp命令来从共享库文件中提取soname,命令如下所示:
#objmp--all-headers/lib/libcrypto.so.0.9.8b|grepSONAME
SONAMElibcrypto.so.6
objmp:/lib/libcrypto.so.0.9.8b:
接下来,将讨论rpm软件包是如何生成的,以便在新系统上安装rpm软件包时,这些共库依赖性是己知的。
三、Rpm软件包和共享库依赖性
当程序员生成rpm软件包时,ldd命令用于报告动态可执行文件软件包中所有动态可执行文件使用的所有共享库。另一个混乱是由下面的事实带来的:相同软件包中的不同动态可执行文件可能与相同的共享库软件包的不同版本进行链接。例如,Heartbeat软件包中的不同程序可能已经进行了开发,并动态链接到libc.so.6sonmae共享库文件的不同GLIBC版本。对rpm命令使用-q和--requires参数,可以看到rpm软件包需要的共享库的完整清单。例如,要看到Heartbeatrpm软件包所有的所需依赖性,请使用命令:
#rpm-q--requires-pheartbeat-1.x.x.i386.rpm
这产生了下面的报告:
sysklogd
/bin/sh
/bin/sh
/usr/bin/python
ld-linux.so.2
libapphb.so.0
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libccmclient.so.0
libdl.so.2
libglib-1.2.so.0
libhbclient.so.0
libpils.so.0
libplumb.so.0
libpthread.so.0
librt.so.1
libstonith.so.0
注意,在此报告中,libc.so.6soname是所需要的,此共享库必须支持使用GLIBC共享软件包版本号2.0、2.1、2.1.3、2.2和2.3进行链接的动态可执行文件。这是由下面的事实决定的:Heartbeat软件包中的不同动态可执行文件是针对不同版本的libc.so.6库的每个版本进行链接的。在了解了动态可执行文件、共享对象、soname和共享库软件包彼此是如何相关的后,下面准备来看这样的一个例子:当尝试安装rpm软件包,并且它由于依赖性错误而失败时,会发生什么。yum能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
四、手工解决依赖性问题
通常,当尝试安装发行版中没有包括的软件包(及不能由像up2date、apt-get或Yum一样的更新工具自动解决其依赖性的软件包)时,将碰到rpm依赖性错误。例如,如果尝试在老的Linux发行版上使用rpm–ivh*rpm命令,例如所有的Heartbeatrpm包,那么在安装过程中就可能碰到下面的错误:
error:faileddependencies:
libc.so.6(GLIBC_2.3)isneededbyheartbeat-1.x.x
libc.so.6(GLIBC_2.3)isneededbyheartbeat-pils-1.x.x
libcrypto.so.0.9.6isneededbyheartbeat-stonith-1.x.x
libsnmp-0.4.2.6.soisneededbyheartbeat-stonith-1.x.x
注意,rpm命令没有干扰报告所需的每个GLIBC共享库软件包版本号——它只报告所需的最高编号的版本号(GLIBC_2.3)。(假定原来的软件包开发人员不会将相同软件包中的可执行文件链接到不兼容版本的共享库软件包)所有的这些故障都报告所需的共享库名称或soname(而不是文件名称,soname始终以“lib”开始)。但可以删除添加到rpm报告的soname结束的版本号,并快速检查以查看是否在系统中使用locate命令安装这些共享库(假设您的locate数据库是最新的,有关更多信息,请参阅locate或slocate的手册页)。例如,
㈩ altools,u32函数得源代码
有这个函数,也有使用该函数实现全屏功能的代码,请参考详细介绍:http://hi..com/xghss/item/d2e7434cf2ce6fe9a4c06654