实验 4 [bx]和 loop 的使用
實驗結(jié)論
實驗1:綜合使用 loop,[bx],編寫完整匯編程序,實現(xiàn)向內(nèi)存 b800:07b8 開始的連續(xù) 16 個字單元重復填充字數(shù)據(jù) 0403H。
1.源代碼及實驗結(jié)果
運行結(jié)果:屏幕中央出現(xiàn)一排紅色的心?。
2.將源代碼程序中字數(shù)據(jù) 0403H→修改為 0441H,再次運行
運行結(jié)果:屏幕中央出現(xiàn)一排紅色的A。
?
實驗2:綜合使用 loop,[bx],編寫完整匯編源程序,實現(xiàn)向內(nèi)存 0:200~0:23F 依次傳送數(shù)據(jù)0~63(3FH)。
1.源代碼
2.匯編、鏈接無誤后,使用g命令調(diào)試,用 d 命令查看 0:200~0:23F
這段代碼確實將 0~63 傳送至?0:200~0:23F的內(nèi)存區(qū)域。
?
實驗3:將“mov ax,4c00h”之前的指令復制到內(nèi)存0:200處。
1.第一個空填cs,表示當前指令的段地址;第二個空填循環(huán)次數(shù),因為此時還不知道循環(huán)次數(shù),先填1。
、
2.進入debug后對代碼反匯編,發(fā)現(xiàn)“mov ax,4c00h”這行代碼前面的代碼長度為17h,所以循環(huán)次數(shù)為17h。
3.完整代碼
4.匯編連接后,使用g命令調(diào)試,并用 d 命令查看 0:200之后的若干字節(jié)
通過與反匯編的機械碼比較,實驗代碼確實將 mov ax, 4c00h 之前的指令復制到內(nèi)存0:200處。
?
總結(jié)與體會
? 通過本次實驗,我基本掌握了【bx】和loop的使用,讓我能更簡潔地解決一些涉及循環(huán)的問題,同時也復習了之前實驗的操作。
? 同時,我有一個問題:在實驗3中,能否不用反匯編就能知道代碼長度,從而快速確定循環(huán)次數(shù)?如果不用反匯編就能知道的話,就能避免一些繁瑣的操作了。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yangpengassembly/p/9977999.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的实验 4 [bx]和 loop 的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人人都在谈的区块链,真的人人都能懂吗?
- 下一篇: org.hibernate.servic