and:將相應位設為1,其它位不變
or:將相應位設為0,其它位不變
assume ds:data
data segment
db 'unix'
db 'fork'
data ends
code segment
start: mov al,'a'
mov bl,'b'
mov ax,4c00h
int 21h
code ends
end start
-r:ds=0b2d
則,程式從0b3dh段開始(別忘了psp字首佔了256個位元組=100h,段位址的話就是10h)
data段是程式中的第乙個段,它就在程式的起始處,所以它的段位址為0b3dh
[bx+idata]:
(ax)=((ds)*16+(bx)+200)
mov ax,[bx+200]
mov ax,[200+bx]
mov ax,200[bx]
mov ax,[bx].200
比較c和組合語言定位字串中字元的方式:
c: a[i],b[i]
彙編: 0[bx],5[bx]
[bx+idata]為高階語言實現陣列提供了便利機制
si和di是8086cpu中和bx功能相近的暫存器
但它們不能夠分成兩個8位暫存器
實驗六(2)
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax, datasg
mov ds,ax
mov bx,3
mov cx,4
s:push cx
mov si,0
mov cx,4
s0:mov al,[bx][si]
and al,11011111b
mov [bx][si],al
inc si
loop s0
add bx,16
pop cx
loop s
mov ax,4c00h
int 21h
codesg ends
end start
大小寫轉換的方法
二重迴圈
二重迴圈中棧的應用
組合語言程式設計第七章
一 and和or指令 and指令 邏輯與指令,按位進行與運算。通過該指令可以將操作物件的相應位設為0,其他位不變。or指令 邏輯或指令,按位進行或運算。通過該指令可以將操作物件的相應位設為1,其他位不變。二 關於ascii碼 三 以字元形式給出的資料 在匯程式設計序中,用 的形式指明資料是以字元的形...
組合語言 第七章實驗6
採用基址變址定址 bx si 採用棧,外層迴圈開始時,將cx入棧,內層迴圈開始時,改變cx的值,內層迴圈結束時,將棧中的值pop出,傳給cx。ascll 大寫 ascll 小寫 a 0100 0001 a 0110 0001 字母用八位二進位制數表示,大小寫的區別是第 位上 和 的區別。大寫字母 小...
組合語言 王爽第七章
and指令 邏輯與指令,按位進行與運算。兩個位多是1才為1,其他情況都為0。比如 and al,10111111b指令將al的第六位設為0其位不變。or指令 邏輯或指令,按位或指令。兩個位置多是0才為0,其他情況多是1。比如 or al 10000000將al的第八位設為1,其他位保持不變。在計算機...