日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8086中的指令

發布時間:2025/1/21 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8086中的指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、傳送指令mov



解釋一下:mem(主存),imm(立即數),reg(寄存器),seg(段寄存器),DST(目的操作數),SRC(源操作數)。(以后都這樣)。


mov DST,SRC???????????? ;就是將(SRC)->DST。

例如:

mov al,4??????? ;將十進制4,轉換成的16的4,然后放到寄存器al里面,(默認數字后面不加說明就是十進制數數字)????????????????? ;(分號在匯編語言里面是注釋)。


mov si,200H

mov al,‘1’?????? ;將1所代表的ASCII放到al中。

注意:

①兩個操作數類型要一致。(就是16位的數傳給16位,8位的數傳給8位)

②兩個操作數不能都是mem。(原因:訪問主存太慢了,你竟然一個命令要訪問兩次,當然不行)

③段寄存器操作的限制

?? 不允許立即數傳送給寄存器

?? 不允許直接改變CS的值

?? 不允許段寄存器之間直接數據傳送。


二、堆棧操作指令PUSH/POP




一開始sp是指向高地址的,然后每壓進去一個字,就sp=(sp)-2,向地地址方向伸展,壓棧和出棧只能是字,沒有字節,所以sp要么加2,,要么減2。理解棧這邊很簡單,你們看我之前寫的8086提供的棧機制博客就能理解,這里不在重復。


三、交換指令XCHG

下面我們來看一下交換嘛,只能是寄存器和寄存器或寄存器和主存之間交換。XCHG DST,SRC??? ;(DST)<-->(SRC)




例如:xchg ax,[2000h]??????????? ;就是將ax寄存器里面的值和偏移地址位2000h的主存字單元內容互換


四、輸入/輸出指令 IN/OUT

大家要理解一下它的意思,對輸入/輸出端口的尋址有兩種方式:直接尋址和DX寄存器的間接尋址。

當是一個字節時可以用直接尋址或寄存器間接尋址,但如果是一個字的話,只能是寄存器間接尋址,也就是說,直接尋址只能是8位數據。


下面舉幾個例子,大家根據注釋理解一下即可

1)直接尋址

IN? AL,50H???? ;將50H端口的字節讀入AL中

IN? AX,70H???? ;將70H、71H兩端口的值讀入AX,70端口的值讀入AL,71H端口的值讀入AH


OUT 80H,AX? ;將ax中的內容輸出到80H、81H端口


2)寄存器間接尋址

端口號必須設在寄存器DX中,現假設DX寄存器中為80H


IN AL,DX???? ;從DX所指的端口80H中讀取1個字節

IN AX,DX???? ;從兩端口中讀取1個字節送到AX中,80H中的值送AL,81H中的值送AH


OUT DX,AX? ;將AX中的字輸出到80H、81H端口。

總結

以上是生活随笔為你收集整理的8086中的指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。