1. 程式人生 > >組合語言 第三版 王爽 檢測點2.3

組合語言 第三版 王爽 檢測點2.3

原文

檢測點2.3
(1)下面的3條指令執行後、CPU幾次修改IP?都是在什麼時候?最後IP中的值是多少?
MOV AX,BX
SUB AX,BX
JMP AX
假設 CS=1230H IP=0001H
第一次
CS:IP指向12301H記憶體處,讀取指令MOV AX,BX ,進入指令緩衝器,此時IP為=0003H,CS不變。
第二次
CS:IP指向12303H記憶體處,讀取指令SUB AX,BX ,進入指令緩衝器,此時IP為=0005H,CS不變。
第三次
CS:IP指向12305H記憶體處,讀取指令JMP AX ,進入指令快取器,IP變更為0007H(用於下次指向記憶體..)
第四次
執行JMP AX
IP=0
第一條指令AX=BX
第二條指令AX、BX=0
第三條指令CS、IP=0 

相關推薦

組合語言 檢測點2.3

原文 檢測點2.3 (1)下面的3條指令執行後、CPU幾次修改IP?都是在什麼時候?最後IP中的值是多少? MOV AX,BX SUB AX,BX JMP AX 假設 CS=1230H IP=0001H 第一次 CS:IP指向12301H記憶體處,讀取指令MOV AX,BX

組合語言 實驗10-2 編寫子程式 之 解決除法溢位問題 divdw

題目: 分析: 1.也就是把dw資料拆成兩個db資料和db相除。 2.注意引數的傳入和傳出。 程式碼: assume cs:code,ss:stack stack segment db 16 dup

組合語言 實驗6 更改大寫字母

題目: 將如圖所示記憶體地址處的小寫字母改為大寫。 注意:si的值每次二重迴圈之前需要重置。 程式碼:assume cs:code,ds:data,ss:stack data segment db '

組合語言 實驗9 根據材料程式設計

題目:      注意事項: 1.windows 7下執行可能看不到效果,我這裡是這樣,安裝xp解決。 2.橫向比較,多篇教程綜合看。 程式碼: assume cs:code,ds:data,ss

組合語言 實驗12 編寫0號終端的處理程式

題目: 編寫0號中斷的處理程式,使得在除法溢位發生時,在螢幕中間顯示字串“divide error!”,然後返回dos 程式碼: assume cs:code code segment start:

組合語言學習歷程——實驗16

編寫包含多個功能子程式的中斷例程 要求: 安裝一個新的int 7ch中斷例程,為顯示輸出提供如下功能: (1)、清屏; (2)、設定前景色; (3)、設定背景色; (4)、向上滾動一行; 入口引數說明如下。 (1)、用ah暫存器傳遞功能號:0表示

-組合語言實驗7

;1. 資料組織 data 中資料當成陣列,table中資料當成結構體。 ;2. data 用si來定址, table 用 bx , di, idata來定址 assume cs:codesg , ss:stacksg data segment    db '1975','1976','1977','1978

組合語言()實驗10-1,2

1.顯示字串 子程式描述: 名稱:show_str 功能:在指定的位置,用指定的顏色,顯示一個用0結束的字串。 引數:(dh)=行號(取值範圍0~24),(dl)=列號(取值範圍0~79), (

組合語言)讀書筆記 2

第2章  暫存器 前一章所說的匯流排,相對於CPU內部來說是外部匯流排。內部匯流排實現了CPU內部各個器件(運算器,控制器,暫存器)之間的聯絡,外部匯流排實現了CPU和主機板上其他器件的聯絡。 不同的CPU,暫存器的個數、結構是不相同的。8086 CPU有14個暫存器

Effective Java 讀書筆記——條款2:當構造器引數太多時考慮使用 builder 模式

靜態工廠方法和構造器都有一個限制:不能很好地支援可選引數(optional parameters)很多的類。考慮一個代表包裝食品上營養成分標籤的類:這些標籤有幾個必需的屬性(每份建議攝入量、每個包裝所含的份數、每份的卡路里)和超過二十個可選的屬性(總脂肪、飽和脂肪、反式脂肪、鈉等等)。應該為

unix環境高階程式設計()-讀書筆記2

限制 unix系統實現定義了很多幻數和常量,其中有很多已被硬編碼到程式中,或用特定的技術確定。 已下兩種型別是必須的。 (1)編譯時限制(例如,短整型的最大值是什麼?) (2)執行時限制(例如,檔名有多少個字串?) 編譯時限制可在標頭檔案中定義。程式在編譯時包含這些標頭檔案。但是執行

1013: C語言程序設計教程()課後習題6.3

其中a是一個數字 blog += color turn sam c語言程序 [] c語言 題目描述 求Sn=a+aa+aaa+…+aa…aaa(有n個a)之值,其中a是一個數字。 例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。 輸入 a 輸出 和 樣

1024: C語言程序設計教程()課後習題7.3

c語言程序 print clas 程序 scanf col class pri printf 題目描述 求一個3×3矩陣對角線元素之和。 輸入 矩陣 輸出 主對角線 副對角線 元素和 樣例輸入 1 2 3 1 1 1 3 2 1 樣例輸出 3 7 1 #include

1013 - C語言程式設計教程()課後習題6.3

1013 - C語言程式設計教程(第三版)課後習題6.3 時間限制:1秒 記憶體限制:128兆 題目描述 求Sn=2+22+222+…+22…222(有n個2)之值,其中a是一個數字。 例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。 輸入 n 輸出 Sn 樣例輸入

C語言程式設計教程()課後習題6.3

題目描述 求Sn=2+22+222+…+22…222(有n個2)之值,其中a是一個數字。 例如:2+22+222+2222+22222(n=5),n由鍵盤輸入。 輸入 n 輸出 Sn 樣例輸入 5 樣例輸出 24690 #include <iostr

組合語言----------------檢測點3.2

檢測點3.2:(1).補全下面的程式,使其可以將10000H - 1000F中的8個字,逆序複製到20000H - 2000FH中。mov ax,1000H mov ds,ax mov ax,2000H mov ss,ax mov sp,000FH push [0] push

組合語言檢測點答案和解析

檢測點3.1 (1)  在DEBUG中,用 "D 0:0 lf" 檢視記憶體,結果如下:  0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60  0000:0010 62 26 E6 D6 CC 2E

匯編檢測點10.5

數值 jmp 控制 tar body blog post 內存 控制器   (1)下面的程序執行後,ax 中的數值是多少? 1 assume cs:code 2 stack segment 3 dw 8 dup (0) 4 stack ends

組合語言】()實驗二

實驗二 實驗任務(一) 實驗前要求我們將書本P74的程式段按理論分析,將結果進行填空。之後用Debug,將該程式段寫入記憶體,逐條執行之後, 根據指令執行後的實際執行的結果填空如下。   mov ax,0021   mov  ax , ffff   &n

組合語言)》筆記(3

第三章 暫存器(記憶體訪問) 使用0、1記憶體單元存放資料0420H, 則低地址單元0存放低位位元組20,高地址單元存放高位位元組04。 字單元:即存放一個字型資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成,高地址存放高位位元組,低地址存放低位位元組