思考:如何把ffff:0-ffff:b單元中的數(shù)據(jù)之和寫入寄存器dx中呢?
一般來說,我們把一個(gè)數(shù)據(jù)單元中的數(shù)據(jù)移到一個(gè)寄存器中的方法是"dl=0,dh=數(shù)據(jù)單元值"的形式。但上述問題中需要轉(zhuǎn)移的是ff:0-fff:b單元中的數(shù)據(jù)之和,結(jié)果很可能大于8位。因此我們選擇,讓一個(gè)寄存器的高(低位)依次存儲(chǔ)ff:0-fff:b單元中的數(shù)據(jù),再依次加入寄存器dx中。
————代碼見P125.
用loop指令實(shí)現(xiàn)"依次轉(zhuǎn)移"
————代碼見P128.
思考:如何把ffff:0-ffff:b單元中的數(shù)據(jù)復(fù)制到020:0-020:b中呢?
顯然此題需要用到段前綴及l(fā)oop指令。
注意:
1.只有段寄存器才能儲(chǔ)存段地址,而段寄存器的值無法直接用mov指令賦值("mov ds,0ffffh"的寫法是錯(cuò)誤的)。需要寄存器中轉(zhuǎn)。
1.兩個(gè)內(nèi)存單元之間的數(shù)據(jù)轉(zhuǎn)移不能直接用mov指令,("mov es:[bx],ds:[bx]"的寫法是錯(cuò)誤的)。需要寄存器中轉(zhuǎn)。
————代碼見P133.