直接定址表

2021-06-09 15:24:38 字數 1917 閱讀 6762

1、描述了單元長度的標號:後面沒有冒號的標號可以同時描述記憶體位址和單位長度。因為這種標號包含了對單元長度的描述,所以,在指令中,它可以代表乙個段中的記憶體單元。稱為資料標號。

2、一般來說,我們不會在**段中定義資料,而是將資料定義到其他段中。

注意:1.在後面加有「:」的位址標號,只能在**段中使用,不能在其他段中使用。

2.如果想在**段中,直接用資料標號訪問資料,則需要用偽指令assume將標號所在的段和乙個段暫存器聯絡起來。

3、在其他段中使用資料標號:

4、seg操作法,功能為取得某一標號的段位址。

5、「查表」方法:目的:1.為了演算法的清晰和簡潔;2.為了加快運算速度;3.為了使程式易於擴充。

例如1. 用十六進製制顯示byte型資料;2.編乙個子程式計算sin(x)。

6、程式設計的時候要注意程式的容錯性,即對於錯誤的輸入要有處理能力。

7、可以在直接定址表中儲存子程式的位址,從而方便地實現不同子程式的呼叫。

8、程式入口位址的直接定址表。

9、清屏是用空格覆蓋,就跟u盤格式化一樣,修改了引導區。

1

;用16進製制顯示資料

2 assume cs:

code3 4

code segment5 6

start:

moval,0eh ;

儲存要顯示地資料7

8 call

showbyte

9

10 mov

ax,4c00h

11 int

21h12

13 showbyte:

14 jmp

short show

15

16 table db '

0123456789abcdef

' ;

字元表17

18 show:

push

bx19

push

es20

21 mov

ah,al

22 mov

cl,4

23 shr

ah,cl ;

右移四位,ah中儲存高四位的值

24 and

al,00001111b

;al中為低4位的值

25

26 mov

bl,ah

27 mov

bh,0

28 mov

ah,table[bx] ;

用高4位的值作為相對table的偏移值,取得對應的字元

29

30 mov

bx,0b800h

31 mov

es,bx

32 mov

es:[160

*12+40

*2],ah

33

34 mov

bl,al

35 mov

bh,0

36 mov

al,table[bx] ;

用低4位的值作為相對table的偏移值,取得對應的字元

37

38 mov

es:[160

*12+40

*2+2

],al

39

40 pop

es41

popbx42

ret43

44 code ends

45 end start

直接定址表

這篇文章中,我們將討論如何有效合理的組織資料,以及相關的程式設計技術.一 描述了單元長度的標號 首先,我們來看乙個簡單的例子 assume cs code code segment a db 1,2,3,4,5,6,7,8,9 b dw 0 start mov si,offset a mov di,...

直接定址表

1.資料標號 關於標號 在彙編 中,可以用標號表示該段 的記憶體位址 標號格式為,標號名加冒號 start 例如 下面的 中 start 就是標號 start mov ax,0 mov bx,ax 關於資料標號 普通的標號只能表示記憶體位址 資料標號即可表示記憶體位址,也可表示記憶體單元的長度 使用...

16 直接定址表

1 前面我們一直在 段使用標號來標記指令 資料 段的起始位置。比如,a db 1,2,3,4,5,6,7,8 b dw 0 程式中,a,b只是標號,它僅僅表示了記憶體單元的位址 但是,我們還可以使用一種標號,這種標號不但標識記憶體單元的位址,還表示了記憶體單元的長度,即表示在此標號的單元,是乙個位元...