操做數直接包含在指令機器碼中緊跟在操做碼的後面code
例如內存
解釋:把後面的操做數傳送給ax,al寄存器基礎
mov ax,0a7fh mov al,5h
操做數是寄存器操做數(16位對16位,8位對8位)數據
解釋:一個寄存器的數給另外一個寄存器di
mov ax,bx mov dl,cn
解釋:把存儲器裏數據段ds(默認)的地址所對應的兩個操做數傳送給ds構成16位再給ax寄存器co
mov ax,[2000h]//經過ds數據段和偏移地址2000h求得物理地址,把該物理地址的內容傳送到ax中 非默認時:mov ax,es:[2000h]//指定了數據段
物理地址求法:假如ds=3000h,那麼內存地址是ds左移四位加[ ]裏面的地址
[ ]裏面的寄存器能夠是bx,bp,si,di
bx,si,di對應的數據段寄存器是ds,而bp對應的是ss
mov ax,[bx]//物理地址=ds*16+bx mov bx,[si]//物理地址=ds*16+si mov [di],dx//物理地址=ds*16+di 這個是反向傳,把寄存器內容傳送到內存
mov [bp],bx//物理地址=ss*16+bp
此外能夠用除開這幾個寄存器以外的寄存器
例如
mov ax,es:[bx]//物理地址=es*16+bx mov ds:[bp],dx//物理地址+ds*16+bp
mov ax,3003h[si]//ax<-[si+3003h] 假如ds=3000h 則物理地址=3000h*10h+si+3003H
mov si,08h[bx]//物理地址=ds*16+bx+08h mov ax,[bx+100h]//物理地址=ds*16+bp+100h mov al,[bp+o8h]//物理地址=ss*16+bp+08h mov 0200h[bp],ax//物理地址=ss*16+bp+0200h
ea=基址寄存器+變址寄存器的內容
mov ax,[bx][si]//物理地址=ds*10h+bx+si
在上一個的尋址方式的基礎上加或者減16/8位的位移量
mov ax,mask[bx][si]//物理地址=ds*10h+bx+si+mask