久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2510|回復: 13
打印 上一主題 下一主題
收起左側

求解匯編程序指令的運算過程及運算結果

[復制鏈接]
跳轉到指定樓層
樓主
ID:957106 發表于 2021-7-29 11:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
MOV 30H,#12
MOV 31H,#23
PUSH 30H
PUSH 31H
POP 30H
POP 31H

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:824490 發表于 2021-7-29 14:02 | 只看該作者
這只是移數、入棧、出棧的指令沒有運算。最后的最后,30H=12,31H=23,均為10進數
回復

使用道具 舉報

板凳
ID:957106 發表于 2021-7-29 14:16 | 只看該作者
名字不是重點 發表于 2021-7-29 14:02
這只是移數、入棧、出棧的指令沒有運算。最后的最后,30H=12,31H=23,均為10進數

感謝回復!是怎么推出來的呢,我根據指令的解釋推不出來
回復

使用道具 舉報

地板
ID:668693 發表于 2021-7-29 14:42 | 只看該作者
把立即數12送入到30H
回復

使用道具 舉報

5#
ID:668693 發表于 2021-7-29 14:49 | 只看該作者
將立即數12送入到30H
將立即數23送入到31H
將30H里面的立即數送入到一級堆棧
將31H里面的立即數送入到二級堆棧
根據堆棧后入先出原則那么30H先出棧的話那么他的數就是23,31H就是12
回復

使用道具 舉報

6#
ID:957106 發表于 2021-7-29 15:53 | 只看該作者
林神經 發表于 2021-7-29 14:49
將立即數12送入到30H
將立即數23送入到31H
將30H里面的立即數送入到一級堆棧

PUSH 30H指令不應該是把12送到31H嗎?然后PUSH 31H指令后又把12給了32H,我理解的,轉不過來不知道咋移的
回復

使用道具 舉報

7#
ID:123289 發表于 2021-7-29 16:18 | 只看該作者
51里有256個快速內存,何為快速?有指令直接訪問有內存(讀、寫、甚至位操作),它的地址是00-FFH。
1、00-1FH:分成四塊,00-07H,08-0FH,10-17H,18-1FH。它們對應R0-R7。
在PSW寄存器中,有兩位(B43:RS1、RS0)決定R0-R7使用上術四塊當中的哪一塊。
例如,PSW.43=11時,R0就是18H,R7就是1FH;PSW.43=00時,R0就是00H,R7就是07H;
2、20-2FH:16個字節,128個位,這128個位是可以單獨訪問的(與、或、求反,測試),而其它內存就不一定有此特殊待遇了。
這128個位,可以用SBIT進行定義。例如:定義 20H.0 = INPUTMM1。即可以按位使用。
按位使用時,可以定義128個變量。當然也可以按字節使用。
按字節使用時,只能定義16個變量。
3、30H-7FH:歸你,按字節使用。
4、80H-8FH:稱為高端內存。低檔的51中沒有這128個字節,高檔的51中有,高端內存只能間接訪問!而低端內存(00-7FH)是直接、間接都可以訪問。為什么要這樣呢?因為高端存存與特殊寄存器重疊,同用80-8FH地址,要區分它們,就是用直接訪問和間接訪問來區分。
下面說到樓主的問題了:
特殊寄存器中有一個叫SP,它是堆棧指針,例如:SP=80H(由你設置任意設置):
PUSH 30H
30H就是前面(3、中介紹的),里面已放了一個數字12,這條指令就將30H中的12,存入SP所指的單元80H中,并將SP+1,讓SP指向81H。
PUSH 31H  ;同理讓31H中的23進入81H,SP+1,SP指向82H。
POP 30H
POP 操作與PUSH相反,PUSH是壓堆,POP是彈棧!它先將SP-1,即SP從82H變成81H,再從81H中取出數字,送到目標寄存器,即將23送入30H。
POP 31H  ;同理將SP-1,SP=80H,再從80H中取出數字12,送到目標寄存器31H。
以上書上都有,老師也應該講過,都是不認真學習的結果。

另出一題:
PUSH P0 是可以的
PUSH R0 是不可以的,為什么?
回復

使用道具 舉報

8#
ID:824490 發表于 2021-7-29 16:42 | 只看該作者
林神經 發表于 2021-7-29 14:49
將立即數12送入到30H
將立即數23送入到31H
將30H里面的立即數送入到一級堆棧

對的,我也是好久沒整匯編了。
回復

使用道具 舉報

9#
ID:824490 發表于 2021-7-29 16:45 | 只看該作者
13355423860 發表于 2021-7-29 15:53
PUSH 30H指令不應該是把12送到31H嗎?然后PUSH 31H指令后又把12給了32H,我理解的,轉不過來不知道咋移的

單片機的堆棧,類似彈夾的原理,你細品一下就有白了。
回復

使用道具 舉報

10#
ID:668693 發表于 2021-7-29 18:15 | 只看該作者
名字不是重點 發表于 2021-7-29 16:45
單片機的堆棧,類似彈夾的原理,你細品一下就有白了。

很形象
回復

使用道具 舉報

11#
ID:401564 發表于 2021-7-29 22:38 | 只看該作者
堆棧是一個水管,只有一個入口和一個出口
堆棧的處理就是把東西擠到水管里和取出來的處理,擠得多了,超過水管的長度了,最先擠進去的就會從另一頭給擠掉地上,你永遠找不到了,這叫溢出
擠進去的時候是一個一個擠進去的,取出來肯定也是一個一個取出來,最后擠進去的就先取出來
PUSH和POP就是一個進和出的功能
PUSH A就是把A里頭的東西放入堆棧
POP A就是把最外面一層堆棧的內容放到A里頭
如果這樣還不明白,直接放棄匯編
回復

使用道具 舉報

12#
ID:88256 發表于 2021-7-29 23:03 | 只看該作者
13355423860 發表于 2021-7-29 15:53
PUSH 30H指令不應該是把12送到31H嗎?然后PUSH 31H指令后又把12給了32H,我理解的,轉不過來不知道咋移的

還是得認真仔細的去理解堆棧和出棧
回復

使用道具 舉報

13#
ID:386001 發表于 2021-8-2 18:42 | 只看該作者
出入棧,均不改變棧里的內容,只是改變了SP指針的指向
回復

使用道具 舉報

14#
ID:858964 發表于 2021-8-2 19:00 | 只看該作者
本帖最后由 Kxuan163 于 2021-8-2 19:07 編輯
林神經 發表于 2021-7-29 14:49
將立即數12送入到30H
將立即數23送入到31H
將30H里面的立即數送入到一級堆棧

正解。
我再補充一下,堆棧的進出次序是“后進先出”:
第5條指令 POP 30H ; 地址為30H的內存單元 <--棧頂內容#23
第6條指令 POP 31H  ;  地址為31H的內存單元 <-- 棧內容#12
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费在线成人 | 久久精品视频12 | 激情毛片| 黄色网址免费在线观看 | 黄色免费在线观看网址 | 国产欧美精品一区二区三区 | 美女在线观看av | 天天色天天色 | 亚欧洲精品在线视频免费观看 | 国产在线h | 色接久久 | 精品国产欧美一区二区三区成人 | 麻豆91av | 国产精品久久国产精品 | 免费成人高清在线视频 | 日本不卡一区二区三区在线观看 | 欧美成人猛片aaaaaaa | 久久精品久久久久久 | 久久精品无码一区二区三区 | 欧美一级黄色片免费观看 | 日韩在线观看中文字幕 | 国产成人综合亚洲欧美94在线 | 欧美炮房| 在线免费观看亚洲 | 亚洲精品3 | 亚洲毛片在线观看 | 亚洲高清在线观看 | 一级片网站视频 | 夜夜草视频 | 久久精品国产免费一区二区三区 | av在线播放不卡 | 欧美久久电影 | 一区二区在线免费观看 | 欧美高清视频在线观看 | 91免费版在线观看 | 成人精品免费视频 | 国产精品精品 | 精品成人av | 日韩av在线不卡 | 国产精品影视在线观看 | 九九热这里只有精品6 |