mov R1 064H?
是要把R1放到64H的記憶體上面嗎?
但是老師要我們做的是要放在30~32H裡面說
直接對累加器跑迴圈比較快吧
但是不知道怎嚜做阿
我試過的 但是重點是要把它改成10進位
就是遞減9次以後進位!
但是他還是跳16次= =
16進位倒數我還可以用偷吃步的方式(好像比較快)
但是現在就是不行改資料庫裡的東西(access學到走火?)
而且程式中的
mo...
老師要你們把計數值放再記憶體(30H~31H) 裡面存取
是比較慢而不是比較快 (老師錯了)
因為經常存取的資料應放在cache或暫存器速度才會快
另外我舉 64H 的例子是計數值 (10進位的100), 可以放在你們老師規定的 (30H ~ 31H中)
你要將計數器改成10進位計數
那只要再迴圈中加一些邏輯判斷
也就是倒數到NumTab 的 0 時
前一位數減一然後再將前一位數重新Display就行了
例:
199 198 197 196 ... 191 190 189
190 跳 189 的做法(虛擬碼) :
代碼:
index 初值為指向個位數的指標
if (判斷出index位數為零)
{
loop:
if ( [index+1] 位數為0) 註 : 若目前index指標指向個位數則 index+1後 index就指向十位數)
{
index++
Jump loop
}
[index+1] 位數減一
重新顯示[index+1] 位數並將 [index] 位數改成顯示9(十進制)
}
此種做法不必作16進制與10進制
若是要使用進制轉換那每減一次需作一次進制轉換,速度將慢很多,隨然肉眼看不出來...