《計算機程式設計藝術》學習筆記(一)

2021-03-31 08:56:31 字數 3275 閱讀 2549

一,

mix

儘管knuth

對於mix

不満,在第

3版和他本人的主頁上宣告即將更換為

mmix

,但對於初學者如我而言,結全本書先學學

mix似乎更為方便,為了學習

tacop

後面的內容,了解一下

mix看來是必須的步驟。

命令格式一般為 op

address,i

(f)

op為命令關鍵字,

address

為位址,

i為變址暫存器,

f為位元組描述。

格式也可能為:

opaddress(f

),這一點

knuth

沒提,但不要求變址時不寫

i部分是很正常的,

knuth

卻沒想到菜鳥如我者卻在開始動不動以為省掉的是

address.

至於有時可以省掉

f 部分是很好理解的,

knuth

有說明。

裝入操作符,(

lda等)儲存操作符(

sta等),注意,

f部分描述的是記憶體位址的而不是暫存器的位元組,這一點我也糊塗了半天。裝的時候順序是從低往高。

算術運算子:

add ,sub ,

mul ,div

只與ra

有關。   與ra和

rx都有關。

位址傳送操作(

enta ,inca ,deca,

等)後面的

address

部分描述的

address

而是數字。

比較操作符:比較的是暫存器和記憶體的值。

move

由單元m

開始移到

r1的內容所指的單元,次數為

f所指定,事後

r1加上

f的值。

num

,將字元**變為數值**,

m被忽略,n1成

1,n2成2

char

,不是num

的反運算,在n前加

3,影響ra和

rx.

注意:rx是

ra的右邊補充。

習題詳析:

stz1位址1

清0

ennx1

rx=-1

stx1(0:1)

-

1

0

0

0

0

位址1

slax1

-

0

0

0

0

0

-

0

0

0

1

0

rarx

enna1

ra=-1

incx1

-

0

0

0

0

63

rx

ent11

r1=1

src1

-

63

0

0

0

0

-

1

0

0

0

0

rarx

add1

-

0

0

0

0

0 ra

overflow

dec1-1

r1=2;

stz1

-

0

0

0

0

0

位址1清0

cmp1

比較ra

和位址1,

相等,因為正0和負

0相等。

mov -1, 1(1)

將位址1

的內容移到位址2(由

r2指定)。只移這乙個,事後

r2=3;

num1

-

0

0

0

0

0

-

1

0

0

0

0

10000=2*64*64+28*64+16

-

0

2

28

16

-

1

0

0

0

0

rarx

char1

-

30

30

30

30

30

-

31

30

30

30

30

rarx

hlt1

程式設計藝術學習筆記(1)

序言習題 1 通過一系列的替代,將四個變數的值 a,b,c,d 變為 b,c,d,a 用最少的步驟 開門菜,然而還是有很多值得思考的地方。能幫助人理解計算機對於賦值的操作。通過觀察,可以認為這是乙個a i 賦值給a i 1 的操作。最少的步驟,只需要五步即可。需要乙個t來作輔助,t a,a b,b ...

《Oracle程式設計藝術》學習筆記 23 段

段就是占用儲存空間的資料庫物件,占用儲存空間的每乙個物件最後都會儲存在乙個段中,如表 索引 回滾段等。段的型別 1 表段 2 表分割槽段 table partition 或子分割槽段 subpartition 這種段型別用於分割槽,與表段很相似。分割槽表由乙個或多個分割槽段 table partit...

《Oracle程式設計藝術》學習筆記 23 段

段就是占用儲存空間的資料庫物件,占用儲存空間的每乙個物件最後都會儲存在乙個段中,如表 索引 回滾段等。段的型別 1 表段 2 表分割槽段 table partition 或子分割槽段 subpartition 這種段型別用於分割槽,與表段很相似。分割槽表由乙個或多個分割槽段 table partit...