組合語言 傳送指令

2021-07-24 07:37:22 字數 1568 閱讀 4907

一.傳送指令

1.通用傳送指令mov

mov  dst,src;將src傳送到dst中

dstsrc操作位數

mem/reg

imm8/16

mem/reg/seg

reg8/16

reg/seg

mem     

8/16

mem/reg

seg       

8/16

imm是立即數,reg是暫存器,seg是段暫存器,mem是主存單元

注意:①兩個運算元的型別要一致

②兩個運算元不能都是mem

③段暫存器操作的限制

不允許立即數傳送給段暫存器

不允許直接改變cs值

不允許段暫存器之間的直接資料傳送

2.堆疊操作指令

push/pop                                    

push  src

pop dst

;sp←(sp)-2

;dst←((sp))

;(sp)←(src)

;sp←(sp)+2

src/dst

segreg16

mem16

注意:dst不能為cs

交換指令xchg,把兩個位置的資料進行互換

xchg dst,src ;

dstsrc操作位數

mem/reg

reg8/16

regmem

8/16

3.輸入/輸出指令in/out

輸入輸出定址方式

直接定址:只用於定址前256個(00h~ffh) 埠,運算元port表示埠號

間接定址:可用於定址全部64k個埠,dx暫存器的值為埠號

對大於ffh的埠只能採用間接定址方式

(1)輸入指令in       將外設資料傳送給cpu內的al/ax

in al,port

in ax,port  

;al或ax←(port)

in al,dx

in ax,dx  

;al或ax←((dx))(dx間接定址)

(2)輸出指令out將cpu內的al/ax資料傳送給外設

out port,al

out port,ax

;port←(al)/(ax) 

out dx,al 

out dx,al

;(dx)←(al)/(ax) (dx間接定址)

4.換碼指令xlat 將(bx)為首址(al)為位移量的位元組儲存單元中的資料送al暫存器。

xlat;((bx)+(al))→al

5.位址傳送指令lea/ lds/ les /lss

(1)取有效位址指令lea將儲存器運算元的有效位址傳送至指定的暫存器中

lea reg,mem

;reg←mem的有效位址ea

(2)取段位址和偏移位址指令lds/les/lss將主存中指定字單元資料送入指定暫存器,下一字單元資料送段暫存器

lds reg,mem

;reg←(mem),

;ds←(mem+2)

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...

(2)組合語言之資料傳送指令

c語言有不同的資料格式,如char,short,int,long等。組合語言針對不同資料有不同的操作碼形式,如movb 傳送位元組 movw 傳送字 movl 傳送雙字 本篇及後面幾篇文章皆採用32位的intel格式,如下圖所示 intel資料型別 彙編 字尾 大小 位元組 位元組b 1字w2 雙字...

組合語言資料傳送指令之堆疊操作指令

處理器通常用硬體支援堆疊 stack 資料結構,它是乙個按 先進後出 first in lastout,filo 訪問原則組織的儲存區域,也可以說是 後進先出 last in first out,lifo 訪問原則。堆疊具有兩種基本操作,對應兩條基本指令 資料壓進堆疊操作對應進棧指令push 資料彈...