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