4.1 請解釋下列名詞:
機器碼 助記符 操作碼 操作數(shù) 源程序目標(biāo)程序 匯編程序 匯編語言 匯編語言程序匯編指令 匯編 機器匯編 人工匯編
4.2 經(jīng)過匯編后,下列各條語句舶標(biāo)號將是什么數(shù)值?
ORG 2000H
TABLE: DS 10 WORD:
DS 15,20,25,30
FANG: EQU 1000H
BEGIN: MOV A,R0
4.3 下列程序段經(jīng)匯編后,從2000H開始的各有關(guān)存儲單元的內(nèi)容將是什么?
ORG 2000H
TAB:DS 5
DB 10H,10
DW 2100H
ORG 2050H
DW TAB
DB "WORK”
4.4 下列程序段經(jīng)匯編后,從1000H開始的各有關(guān)存儲單元的內(nèi)容將是什么?
ORG 1000H
TABl:EQU 1234H
TAB2:EClU 3000H
DB “START”
DW TABl,TAB2
4.5 綜述匯編語言程序的書寫格式。
4.6 要將片內(nèi)RAM 0FH單元的內(nèi)容傳送去專用寄存器B,對0FH單元的尋址可有三種辦法;
(1)寄存器尋址 (2)寄存器間址 (3)直接尋址
請分別編出相應(yīng)程序,比較其字節(jié)數(shù)、機器周期數(shù)和優(yōu)缺點。
4.7 試編程:引用“與”運算,判斷某8位二進制數(shù)是奇數(shù)還是偶數(shù).
4.8 試編程:引用‘或”運算,使任意8位二進制數(shù)的符號位必為“1’。
4.9 設(shè)ROM、片內(nèi)RAM,片外RAM各有關(guān)單元的內(nèi)容示如下圖,問執(zhí)行下列程序段后(A)=?

0000 AJMP 030H
ORG 0030H
0030 MOV R0,#32H
MOV A,@R0
MOV R1,A
MOVX A,@R1
MOVC A,@A+DPTR
4.10 若在片內(nèi)RAM 30H單元中有2位壓縮的BCD碼95H,問執(zhí)行下列程序后,片內(nèi)RAM 30H單元的內(nèi)容是什么?31H、32H的內(nèi)容又是什么?并寫出BCD碼十進制調(diào)整的過程。
MOV R0,#30H
MOV A,@R0
ANL A,#OFH
MOV R3,A
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,R3
DA A
MOV @R0,A
MOV R3,A
INC R0
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,R3
ANL A, #0FOH
SWAP A
MOV @R0,A
RET
4.11 試編程;將兩個4位二進制數(shù)并存于一個字節(jié)。
4.12 試編程:將存于片內(nèi)RAM 40H、41H單元中的16位數(shù)求補,結(jié)果放回原單元(低字節(jié)放40H單元)。
4.13 試編程:有兩雙字節(jié)壓縮的BCD碼數(shù)相加,設(shè)該兩待加數(shù)分別按先低后高原則存放在30H、31H和40H、4lH單元,和要求放回30H、3lH單元。
4.14 試編程:將累加器A內(nèi)容低4位送片外RAM 7AH單元,高4位送片外RAM 7BH單元,?AH、7BH單元的高4位均清零。
4.15 試編程:將片內(nèi)RAM 50H、5lH單元兩個無符號數(shù)中較小的數(shù)存于60H單元。
4.16 試編程:將片內(nèi)RAM 60H~69H單元中的10個數(shù)相加,和的低8位存人7EH,高8位存人7FH。
4.17 試編程:統(tǒng)計從片內(nèi)RAM 60H單元起所存60個數(shù)中“0”的個數(shù),并存人工作寄存器R7。
4.18 試緒程:將ROM中自2000H單元起的100個數(shù),按序移至片外RAM自2080H單元起的內(nèi)存區(qū)間去.
4.19 試編程:將ROM中以TAB為初址的32個單元的內(nèi)容依次傳送到片外RAM以00H為初址的區(qū)域去(規(guī)定用查表指令)。
4.20 試編寫一段于程序,將片外RAM 20H單元中壓縮的BCD碼轉(zhuǎn)換成共陰的七段筆劃信息碼,存于片內(nèi)RAM 20H、21H單元,以待顯示(七段筆劃信息碼的最高位為o)。
4.21 請編一將A中內(nèi)容乘10的程序,要求:
(1)不可用MUL指令
1) 乘積≤255 2) 乘積>255
(2)可用MUL指令
1) 乘積≤255 2) 乘積>255
規(guī)定乘積放在片內(nèi)RAM的30H單元或30H、3lH單元。
4.22 設(shè)晶振為12MHx,請詳細剖析(包括計算)下列程序段的性質(zhì)和用途:
0B0 79 63 DELAY: MOV R1,#63H
0B2 00 DLl: NOP
0B3 00 NOP
0B4 D9 FC DJNZ R1,DLl
0B6 22 RET
4.23 請編寫一個能延時1.5ms的子程序,要列出計算。Tcy=1us。
4.24 閱讀下列程序,
(1)說明該程序的功能。

(2)填出所缺的機器碼。
(3)試修改程序,使片內(nèi)RAM的內(nèi)容達到右下圖所示的結(jié)果.
MOV R2,#0AH
MOV R0,#50H
CLR A
LOOP: MOV @R0,A
INC RO
DJNZ R2,LOOP
DONE;
4.25 閱讀下列程序,并要求:
(1)說明程序的功能。

(2)寫出涉及的寄存器及片內(nèi)RAM單元的最后結(jié)果。
MOV R0,#40H
MOV A,@R0
INC R0
ADD A,@R0
INC R0
MOV @R0,A
CLR A
ADDC A,#0
INC R0
MOV @R0,A
4.26 閱讀下列程序,寫出程序執(zhí)行后片外RAM 8000H和8002H單元以及R1、R3、R4的內(nèi)容.
ORG 0200H
MOV DPTR,#DAT
MOV R0,#0
MOV R1,#1
MOV R2,#2
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
ORL A,R3
JZ HERE
MOV DPTR,#DAT
LOOPl:MOV R3, #8
LOOP2:MOVX A,@DPTR
ANL A,R1
MOV R4,A
JZ NEXT
INC R0
NEXT: MOV A,R1
RL A
MOV R1,A
DJNZ R3,LOOP2
INC DPTR
DJNZ R2,LOOPl
MOV A,R0
MOVX @DPTR,A
HERE:SJMP HERE
ORG 8000H
DAT: DW 4B9FH
DB 0
END
