【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念
生活随笔
收集整理的這篇文章主要介紹了
【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0 前言
本文解答王爽《匯編語言》實驗5的(5)(6)題
同時給出一些常見問題的解答
以及給出最易犯錯的地方:數據類型不匹配的解決方案
1 題目解答
1.1 實驗5(5)
1.1.1 題目
將data1和data2段的數據依次相加,結果放入data3段
data1 segmentdb 1,2,3,4,5,6,7,8 data1 endsdata2 segmentdb 1,2,3,4,5,6,7,8 data2 endsdata3 segmentdb 0,0,0,0 ,0,0,0,0 data3 ends1.1.2 題目解析
重要的:程序算法設計(無論多簡單,都不能忽視!)
1.1.3 代碼
assume ds:data1,ds:data2,ds:data3 data1 segmentdb 1,2,3,4,5,6,7,8 ; 8 + 8 = 10H 一個字節放得下,沒事! data1 endsdata2 segmentdb 1,2,3,4,5,6,7,8 data2 endsdata3 segmentdb 0,0,0,0 ,0,0,0,0 data3 endsassume cs:code code segment start:mov ax,data1mov ds,axmov bx,0mov cx,8s:mov al,[bx] ; 這種語法格式,很容易讓人忽略【數據類型】,還是AT&T格式好add al,[bx + 10h]mov [bx + 20h],aladd bx,1loop smov ax,04c00hint 21h code ends end start1.1.4 代碼注意事項
1.2 實驗5(6)
1.2.1 題目
用push指令將data1段的前8個字型數據,逆序放入data2段
data1 segmentdw 1,2,3,4, 5,6,7,8, 9,0ah,0bh,0ch, 0dh,0eh,0fh,0ffh data1 endsdata2 segmentdw 0,0,0,0, 0,0,0,0 data2 ends1.2.2 題目解析
以下是設計模型
算法流程模型不再贅述,只需要
1.2.3 代碼
assume ds:data1,ds:data2 data1 segmentdw 1,2,3,4, 5,6,7,8, 9,0ah,0bh,0ch, 0dh,0eh,0fh,0ffh data1 endsdata2 segmentdw 0,0,0,0, 0,0,0,0 data2 endsassume cs:code code segment start:mov ax,data2mov ss,axmov sp,10hmov ax,data1mov ds,axmov bx,0mov cx,8s:push [bx]add bx,2loop smov ax,04c00hint 21h code ends end start1.3 其他語法的注意事項
對于開頭的地方,需要注意,以下是對的:
assume ds:data1,ds:data2,ds:data3不可以用以下省略!沒有這種省略!
assume ds:data1,data2,data3這表明,段寄存器:段是一體的,這兩個東西的組合,共同表明了段的類型,不可以連寫。
2 由題目獲得的重要思想觀念
2.1 需求分析與程序設計的重要性
任何程序設計,都要先設計,再實現,不要一上來就實現!一上來就敲代碼的唯一結果,就是反復返工,浪費時間。
且問題復雜度越大,浪費時間越多,危害也就越大,例如在歷史上,軟件工程發展初級階段,放療設備的軟件失誤導致多人死亡,這個故事足以讓你明白需求分析和設計的重要性。
2.2 把握指令本質,實現靈活應用
這里想強調,push和pop指令的本質就是數據傳送指令,它們與mov的本質沒有區別,只不過對其的設計的為了專門的堆棧應用而已,但這不代表你只能將其應用于堆棧。
例如最開篇的題目,如果你使用push\pop指令,是完全可以實現的,不過第一題確實沒有必要多此一舉。
2.3 避免數據類型匹配錯誤的解決方案
對于此處的講解,我單獨放了一篇文章,給到你鏈接
匯編語言程序設計,如何避免數據類型匹配錯誤
總結
以上是生活随笔為你收集整理的【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LOL皎月女神和无双剑姬的对比?谁能拿到
- 下一篇: 女总裁的贴身高手2剧情介绍