7 更靈活的定位記憶體位址的方法

2021-09-06 07:11:54 字數 1960 閱讀 8413

1.and指令:邏輯

指令,按位進行與運算。

與1不變,與0變0,可將物件相應位設為0.

2.or指令:邏輯指令,按為進行或運算。

或1變1,或0變0,可將物件位設為1. 3

.[bx+idata]的幾種表現形式:

(1)mov ax,[200+bx]

(2)mov ax,200[bx]

(3)mov ax,[bx].200

4.[bx+idata]的

陣列處理案例

assume cs

:codesg,ds

:datasg

datasg segment

db 'basic'

db 'minix'

datasg ends

codesg segment

start

:mov ax,datasg

mov ds,ax

mov bx,

0mov cx,

5s :    mov al,

0[bx]

and al,

11011111b

mov al,

5[bx]

or  al,

00100000b

mov

5[bx],al

inc bx

loop s

codesg ends

end start

5.si和di是8086cpu中和bx功能相似的暫存器,只是不能分成兩個8位的暫存器來用。 6

(1)mov ax,[bx][si]

(2)mov ax,[bx+si] 7

.[bx+si+idata]

(1)mov ax,[bx+200+si]

(2)mov ax,[200+bx+si]

(3)mov ax,200[bx][si]

(4)mov ax,[bx].200[si]

(5)mov ax,[bx][si].200

8.一般來說,需要暫存資料,我們都應該使用棧。

9.使用棧暫存資料的案例

assume cs

:codesg,ds

:datasg

datasg segment

db 'ibm               '

db 'dec               '

db 'dso               '

db 'vax               '

datasg ends

stacksg segment

dw 0,

0,0,

0,0,

0,0,

0stacksg ends 

codesg segment

start

: mov ax,datasg

mov ds,ax

mov dx,stacksg

mov ss,dx

mov sp,

16mov bx,

0mov cx,

4s0 : push cx

mov si,

0mov cx,

3s :    mov al,[bx

+si]

and ax,

11011110b

mov [bx

+si],al

inc si

loop s

add bx,

16pop cx

inc bx

loop s0

mov ax,

4c00h

int

21hcodesg ends 

end start

7 更靈活的定位記憶體位址的方法

1.and指令 邏輯與指令,按位進行與運算。與1不變,與0變0,可將物件相應位設為0.2.or指令 邏輯或指令,按為進行或運算。或1變1,或0變0,可將物件位設為1.3.bx idata 的幾種表現形式 1 mov ax,200 bx 2 mov ax,200 bx 3 mov ax,bx 200 ...

更靈活的定位記憶體位址的方法

1 and和or指令 and指令 邏輯與指令,按位進行與運算 技巧 通過該指令可將操作物件的相應位設為0,其他位不變 or指令 邏輯或指令,按位進行或運算 技巧 通過該指令可將操作物件的相應位設為1,其他位不變 2 ascii碼 編碼方案,就是一套規則,它約定了用什麼樣的資訊來表示現實物件。例 61...

更靈活的定位記憶體位址的方法

與其說這一章是在講如何在彙編語法上更方便的定位記憶體位址,不如說是如何在底層中抽象出一種資料結構來。and指令 邏輯與指令,按位進行計算,全一得一 or指令 邏輯或指令,按位進行計算,逢一得一 在匯程式設計序中,以 指明資料是以字元的形式給出的,編譯器將把他們轉換位相應的ascii碼。同乙個字母的大...