彙編——第五章 [BX]和loop指令

第五章 [BX]和loop指令

1.[bx] 和內存單元的描述
[bx],就相當於[0],bx作爲偏移地址

2.loop指令
這是一個循環指令,默認的計數器爲cx,及cx表示循環的次數,在每一次循環的末尾cx-1,到cx爲0退出循環。
如代碼
mov cx, 3
mov bx,0
mov dx,0
s: mov al, ds:[bx]
mov ah,0
add dx,ax
inc bx
loop s

3.定義()
(ax)表示ax的內容,(20000H)表示20000H單元裏面的內容。
((ds)*16+(bx)) 表示偏移地址爲bx,段地址爲ds的內存單元裏面的內容。

4.約定符號idata表示常量

5.1 [BX]

用法就是BX作爲偏移地址。
這裏有一個指令
inc bx 表示bx自加一,比add bx,1要快不少

5.2 Loop指令

用cx寄存器來存放循環次數
格式爲
標號:循環代碼
loop 標號
如:
s:mov ax,1
loop s
CPU在執行loop時要進行倆步操作: (1) (cx) = (cx) - 1 (2) 判斷cx的值,不爲0則跳轉值標號處執行程序。
不管cx的值,循環段代碼至少執行1次。

5.5 [bx]和loop結合使用

相當於就是循環加可變的偏移值

5.6 段前綴

段前綴就是如同 ds:[bx] 裏面的ds:
有 ds: cs: ss: es: 這些稱爲段前綴

5.7 一段安全的空間

一般來說在dos方式下,0:200 ~ 0:2ff ( 00200H ~ 002ffH ) 的256個字節空間是不會有程序使用的。
所以這一段空間是安全的。不過爲了安全起見,進入DOS後可以Debug查看一下這一段空間是不是都爲0.

所以以後向一個段中寫入內容時,使用0:200 ~ 0:2ff 這段空間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章