匯編(五)

編寫一個完整的匯編

  • 匯編語言由2類指令組成
assume cs:code'
code segment
mov ax, 1122h
mov bx, 3344h
add ax, bx
mov ah, 4ch
int 21h
code ends
end

    • 匯編指令
      • 如mov、add锉矢、sub等
      • 有對應(yīng)的機器指令梯嗽,可以被編譯為機器指令,最終被CPU執(zhí)行
    • 偽指令
      • 如assume沽损、 segment灯节、ends、end等
      • 沒有對應(yīng)的機器指令绵估,由編譯器解析炎疆,最終不被CPU執(zhí)行
  • 注釋以分號開頭
數(shù)據(jù)段

偽指令 - segment , ends , end

assume cs:code
code segment
mov ax, 1122h 
mov bx, 3344h 
add ax, bx 
mov ah,4ch 
int 21h
code ends
end
  • segment和ends的作用是定義一個段,segment代表一個段的開始国裳,ends代表一個段的結(jié)束形入,使用格式為
段名 segment
      :
段名 ends
  • 一個有意義的匯編程序中,至少要有一個段作為代碼段存放代碼

  • assume

    • 將用作代碼段的code段和CPU中的cs寄存器關(guān)聯(lián)起來
  • end

    • 編譯器遇到end時缝左,就結(jié)束對源程序的編譯
  • 下面2句代碼的作用是退出程序

mov ah,4ch
int 21h
  • 也可以寫成
mov ax, 4c00h
int 21h

中斷

  • 中斷

    • 中斷是由于軟件的或硬件的信號亿遂,使得CPU暫停當(dāng)前的任務(wù)螟蒸,轉(zhuǎn)而去執(zhí)行另一段子程序
    • 也就是說,在程序運行過程中崩掘,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的情況七嫌,此時,CPU暫時中止當(dāng)前程序的執(zhí)行轉(zhuǎn)而處理這個新情況的過程就叫做中斷
  • 中斷的分類

    • 硬中斷(外中斷)苞慢,由外部設(shè)備(比如網(wǎng)卡诵原、硬盤)隨機引發(fā)的,比如當(dāng)網(wǎng)卡收到數(shù)據(jù)包的時候挽放,就會發(fā)出一個中斷
    • 軟中斷(內(nèi)中斷)绍赛,由執(zhí)行中斷指令產(chǎn)生的,可以通過程序控制觸發(fā)

從本質(zhì)上來講辑畦,中斷是一種電信號吗蚌,當(dāng)設(shè)備有某種事件發(fā)生時,它就會產(chǎn)生中斷纯出,通過總線把電信號發(fā)送給中斷控制器蚯妇。如果中斷的線是激活的,中斷控制器就把電信號發(fā)送給處理器的某個特定引腳暂筝。處理器于是立即停止自己正在做的事箩言,跳到中斷處理程序的入口點,進行中斷處理

中斷
  • 可以通過指令int n產(chǎn)生中斷

    • n是中斷碼焕襟,內(nèi)存中有一張中斷向量表陨收,用來存放中斷碼對應(yīng)中斷處理程序的入口地址
    • CPU在接收到中斷信號后,暫停當(dāng)前正在執(zhí)行的程序鸵赖,跳轉(zhuǎn)到中斷碼對應(yīng)的中斷向量表地址處务漩,去執(zhí)行中斷處理程序
  • 常見中斷

    • int 10h用于執(zhí)行BIOS中斷
    • int 3是“斷點中斷”,用于調(diào)試程序
    • int 21h用于執(zhí)行DOS系統(tǒng)功能調(diào)用它褪,AH寄存器存儲功能號

DOS系統(tǒng)功能調(diào)用

  • DOS系統(tǒng)功能調(diào)用
    • 由DOS提供的一組實現(xiàn)特殊功能的子程序供程序員在編寫自己的程序時調(diào)用饵骨,以減輕編程的工作量
    • 涉及屏幕顯示、文件管理列赎、I/O管理等等
    • 每個子程序都有一個功能號宏悦,所有的功能調(diào)用的格式都是一致的镐确。調(diào)用的步驟大致如下:系統(tǒng)功能號送到寄存器AH中包吝;
      • 入口參數(shù)送到指定的寄存器中;
      • 用INT 21H指令執(zhí)行功能調(diào)用源葫;
      • 根據(jù)出口參數(shù)分析功能調(diào)用執(zhí)行情況诗越。
;----數(shù)據(jù)段---
data segment 
string db 'Hello World!$'
data ends
mov ax, data
mov ds, ax ; 設(shè)置ds為數(shù)據(jù)段
mov ah, 9h ;功能號9h代表在屏幕顯示字符串mov dx, offset string ;ds:dx代表字符串地址
int 21h ;執(zhí)行DOS系統(tǒng)功能調(diào)用

emu8086常用快捷鍵

  • F5:調(diào)試運行

  • F4:重新加載

  • F8:下一步(單步執(zhí)行)

  • F9:直接一步到位運行整個程序

Ctrl + F8:跳過前面代碼,斷點到單擊選中的代碼那行


文章鏈接:http://www.reibang.com/p/3216291cdf87

只為收藏息堂,不成敬意嚷狞!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末块促,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子床未,更是在濱河造成了極大的恐慌竭翠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薇搁,死亡現(xiàn)場離奇詭異斋扰,居然都是意外死亡,警方通過查閱死者的電腦和手機啃洋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門传货,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宏娄,你說我怎么就攤上這事问裕。” “怎么了孵坚?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵粮宛,是天一觀的道長。 經(jīng)常有香客問我卖宠,道長窟勃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任逗堵,我火速辦了婚禮秉氧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜒秤。我一直安慰自己汁咏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布作媚。 她就那樣靜靜地躺著攘滩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纸泡。 梳的紋絲不亂的頭發(fā)上漂问,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音女揭,去河邊找鬼蚤假。 笑死,一個胖子當(dāng)著我的面吹牛吧兔,可吹牛的內(nèi)容都是我干的磷仰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼境蔼,長吁一口氣:“原來是場噩夢啊……” “哼灶平!你這毒婦竟也來了伺通?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后圾结,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崖咨,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡吆你,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俊犯,到底是詐尸還是另有隱情妇多,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布燕侠,位于F島的核電站者祖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绢彤。R本人自食惡果不足惜七问,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茫舶。 院中可真熱鬧械巡,春花似錦、人聲如沸饶氏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疹启。三九已至古程,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喊崖,已是汗流浹背挣磨。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荤懂,地道東北人茁裙。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像势誊,于是被迫代替她去往敵國和親呜达。 傳聞我的和親對象是個殘疾皇子谣蠢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,198評論 8 114
  • 一. 編寫一個完整的匯編 匯編語言由2類指令組成:assume cs: codecode segmentmov a...
    林大鵬閱讀 349評論 0 1
  • 上篇文章我們了解了內(nèi)存讀寫的指令,關(guān)于棧的操作.接下來我們看下這個Demo 新建項目(單個視圖的空項目)CMD +...
    請叫我Hank閱讀 1,794評論 0 3
  • 編寫一個完整的匯編 匯編語言由2類指令組成assume cs:codecode segmentmov ax,112...
    Stone_熊小叔閱讀 259評論 0 0
  • 壽險經(jīng)理人關(guān)注點: 壽險經(jīng)理人的基礎(chǔ)管理只需要抓住兩個職場:1赏僧、第一職場:大早會:目標(biāo)是學(xué)習(xí)技能大猛,解決問題,調(diào)整心...
    王永智閱讀 121評論 0 0