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只是標號,它僅僅表示了記憶體單元的位址 但是,我們還可以使用一種標號,這種標號不但標識記憶體單元的位址,還表示了記憶體單元的長度,即表示在此標號的單元,是乙個位元...