【正文】
令的有序組合 ? 高級(jí)語(yǔ)言程序 – 一條高級(jí)語(yǔ)言對(duì)應(yīng)一個(gè)計(jì)算機(jī)指令的有序集合 高級(jí)語(yǔ)言程序 編譯解釋 可執(zhí)行程序 指令執(zhí)行 程序舉例 指令系統(tǒng) 指令 硬件相關(guān) 可執(zhí)行程序 高級(jí)語(yǔ)言程序 編譯解釋 有序集合 硬件無(wú)關(guān) 硬件相關(guān) 一個(gè)虛擬的指令系統(tǒng) 指令系統(tǒng) 將內(nèi)存 X單元的數(shù)據(jù)輸出 將內(nèi)存 X與 Y單元數(shù)據(jù)相加并將結(jié)果存儲(chǔ)到 Z單元 將內(nèi)存 X與 Y單元數(shù)據(jù)相減并將結(jié)果存儲(chǔ)到 Z單元 比較 X與 Y,若相等跳到 P處,否則執(zhí)行下一條指令 程序跳轉(zhuǎn)到 P處執(zhí)行 7條指令即7個(gè)原語(yǔ) 將當(dāng)前輸入數(shù)據(jù)存儲(chǔ)到內(nèi)存的 X單元 將內(nèi)存 Y單元的值設(shè)為 X Input X Output X Add X Y Z Sub X Y Z BranchEq X Y P Jump P Set X Y 語(yǔ)法 語(yǔ)義 指令構(gòu)成的程序 1 ? 輸入 3個(gè)數(shù) A, B和 C,求 A+B+C的結(jié)果 Input A。 輸入第 1個(gè)數(shù)據(jù)到存儲(chǔ)單元 A中 Input B。 Input C。 Add A B D。 將 A、 B相加并將結(jié)果存在 D中 Add C D D。 將 C、 D相加并將結(jié)果存在 D中 Output D。 輸出 D的內(nèi)容 對(duì)應(yīng)的 C語(yǔ)言程序: int a,b,c,d。 scanf(%d,%d,%d,amp。a,amp。b,amp。c)。 printf(%d, a+b+c)。 指令構(gòu)成的程序 2 ? 輸入 A,求 A+A+A的結(jié)果 解 1: Input A。 Add A A D。 Add A D D。 Output D。 解 2: Input A。 Set 0 Z。 Add Z A Z。 Add Z A Z。 Add Z A Z。 Output Z。 對(duì)應(yīng)的 C語(yǔ)言程序: int a。 scanf(%d,amp。a)。 printf(%d, a*3)。 指令構(gòu)成的程序 3 ? 輸入 2個(gè)數(shù) A和 B,求 A*B A*B = A+A+……+A ( B個(gè) A相加) 1. Input A。 2. Input B。 3. Set 0 X。 4. Set 0 Z。 5. BranchEq X B 9。 6. Add Z A Z。 7. Add 1 X X。 8. Jump 5。 9. Output Z。 ? 分別輸入兩個(gè)數(shù)到 A、 B兩個(gè)變量 ? 設(shè) X = 0, Z = 0 ?當(dāng) X不等于 B時(shí),重復(fù)做以下操作: Z = Z + A; X = X + 1; ?輸出 Z 對(duì)應(yīng)的 C語(yǔ)言程序: int a,b。 scanf(%d,%d,amp。a,amp。b)。 printf(%d,a*b)。 Page 44 程序運(yùn)行舉例 通過(guò)控制語(yǔ)句循環(huán)執(zhí)行 程序通常是順序執(zhí)行 通過(guò)控制語(yǔ)句進(jìn)行選擇執(zhí)行 2022秋季學(xué)期 Any Question?