匯編語言_05

編寫一個完整的匯編

  • 匯編語言由2類指令組成
    • 匯編指令:如mov蝙斜、add名惩、sub等;有對應的機器指令孕荠,可以被編譯為機器指令娩鹉,最終被CPU執(zhí)行
    • 偽指令:如assume、 segment稚伍、ends弯予、end等;沒有對應的機器指令个曙,由編譯器解析锈嫩,最終不被CPU執(zhí)行
assume cs:code
code segment
mov ax,1122h
mov bx,3344h
add ax,bx

mov ah,4ch
int 21h
code ends
end
  • 注釋以分號開頭


偽指令 - 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代表一個段的結束呼寸,使用格式為
段名 segment
      :
段名 ends
  • 一個有意義的匯編程序中,至少要有一個段作為代碼段存放代碼
  • assume
    • 將用作代碼段的code段和CPU中的cs寄存器關聯(lián)起來
  • end
    • 編譯器遇到end時悼沿,就結束對源程序的編譯
  • 下面2句代碼的作用是退出程序
mov ah,4ch
int 21h

也可以寫成

mov ax, 4c00h
int 21h

中斷

  • 中斷
    • 中斷是由于軟件的或硬件的信號等舔,使得CPU暫停當前的任務,轉而去執(zhí)行另一段子程序
    • 也就是說糟趾,在程序運行過程中慌植,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的情況,此時义郑,CPU暫時中止當前程序的執(zhí)行轉而處理這個新情況的過程就叫做中斷
  • 中斷的分類
    • 硬中斷(外中斷)蝶柿,由外部設備(比如網(wǎng)卡、硬盤)隨機引發(fā)的非驮,比如當網(wǎng)卡收到數(shù)據(jù)包的時候交汤,就會發(fā)出一個中斷
    • 軟中斷(內中斷),由執(zhí)行中斷指令產(chǎn)生的劫笙,可以通過程序控制觸發(fā)

從本質上來講芙扎,中斷是一種電信號,當設備有某種事件發(fā)生時填大,它就會產(chǎn)生中斷戒洼,通過總線把電信號發(fā)送給中斷控制器。如果中斷的線是激活的允华,中斷控制器就把電信號發(fā)送給處理器的某個特定引腳圈浇。處理器于是立即停止自己正在做的事寥掐,跳到中斷處理程序的入口點,進行中斷處理

  • 可以通過指令int n產(chǎn)生中斷
    • n是中斷碼磷蜀,內存中有一張中斷向量表召耘,用來存放中斷碼對應中斷處理程序的入口地址
    • CPU在接收到中斷信號后,暫停當前正在執(zhí)行的程序褐隆,跳轉到中斷碼對應的中斷向量表地址處污它,去執(zhí)行中斷處理程序
  • 常見中斷
    • int 10h用于執(zhí)行BIOS中斷
    • int 3是“斷點中斷”,用于調試程序
    • int 21h用于執(zhí)行DOS系統(tǒng)功能調用庶弃,AH寄存器存儲功能號

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

  • DOS系統(tǒng)功能調用
    • 由DOS提供的一組實現(xiàn)特殊功能的子程序供程序員在編寫自己的程序時調用轨蛤,以減輕編程的工作量
    • 涉及屏幕顯示、文件管理虫埂、I/O管理等等
    • 每個子程序都有一個功能號,所有的功能調用的格式都是一致的圃验。調用的步驟大致如下:
      • 系統(tǒng)功能號送到寄存器AH中掉伏;
      • 入口參數(shù)送到指定的寄存器中;
      • 用INT 21H指令執(zhí)行功能調用澳窑;
      • 根據(jù)出口參數(shù)分析功能調用執(zhí)行情況斧散。
;----數(shù)據(jù)段---
data segment
    string db 'Hello World!$'
data ends
mov ax, data
mov ds, ax ; 設置ds為數(shù)據(jù)段

mov ah,9h ;功能號9h代表在屏幕顯示字符串
mov dx, offset string  ;ds:dx代表字符串地址
int 21h  ;執(zhí)行DOS系統(tǒng)功能調用

emu8086常用快捷鍵

  • F5:調試運行
  • F4:重新加載
  • F8:下一步(單步執(zhí)行)
  • F9:直接一步到位運行整個程序
  • Ctrl + F8:跳過前面代碼,斷點到單擊選中的代碼那行



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末摊聋,一起剝皮案震驚了整個濱河市鸡捐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌麻裁,老刑警劉巖箍镜,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異煎源,居然都是意外死亡色迂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門手销,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歇僧,“玉大人,你說我怎么就攤上這事锋拖≌┖罚” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵兽埃,是天一觀的道長侥钳。 經(jīng)常有香客問我,道長讲仰,這世上最難降的妖魔是什么慕趴? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任痪蝇,我火速辦了婚禮,結果婚禮上冕房,老公的妹妹穿的比我還像新娘躏啰。我一直安慰自己,他們只是感情好耙册,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布给僵。 她就那樣靜靜地躺著,像睡著了一般详拙。 火紅的嫁衣襯著肌膚如雪帝际。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天饶辙,我揣著相機與錄音蹲诀,去河邊找鬼。 笑死弃揽,一個胖子當著我的面吹牛脯爪,可吹牛的內容都是我干的。 我是一名探鬼主播矿微,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痕慢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涌矢?” 一聲冷哼從身側響起掖举,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娜庇,沒想到半個月后塔次,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡名秀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年俺叭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泰偿。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡熄守,死狀恐怖,靈堂內的尸體忽然破棺而出耗跛,到底是詐尸還是另有隱情裕照,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布调塌,位于F島的核電站晋南,受9級特大地震影響,放射性物質發(fā)生泄漏羔砾。R本人自食惡果不足惜负间,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一偶妖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧政溃,春花似錦趾访、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至愤诱,卻和暖如春云头,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淫半。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工溃槐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人科吭。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓竿痰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親砌溺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內容