蘭州大學電磁場與電磁波答案
1. 有楊儒貴編的《電磁場與電磁波》(第一版)的課後習題答案
3)MOV CH,TABL3+2 CH=(0CH)
4)MOV DL,ARRAY DL=(41H)
5)MOV DH,COUNT DH=(4)
第四章
4.1寫出完成下述功能的程序段:
1)將32H存入CH中.
MOV CH,32H
2)將CH中的內容與2AH相加.
ADD CH,2AH
3)將CH中的內容乘2
ADD CH,CH ;(練習冊上的答案為:SHL CH,1)
4)將CH中的內容存入以BX作為相對基址定址的數組變數NUM的第10個位元組單元中(數據段)
MOV BX,9
MOV NUM[BX],CH
4.2寫出完成下述功能的程序段:
1)在數據段中,字變數DARA1有兩個數據:1C35H和0214H,字變數DARA2有兩個數據:0A678和81A4H,字變數DARA3為二個空單元.
作者: 218.27.73.* 2005-9-3 09:21 回復此發言
--------------------------------------------------------------------------------
4 匯編語言程序設計課後習題答案
DATA SEGMENT
DARA1 DW 1C35H,0214H
DARA2 DW 0A678,81A4H
DARA3 DW 2 DUP (?)
DATA ENDS
2)將DATA1的第一個字數據傳送給AX.
MOV AX,DATA1
3)將AX的內容與FARA2的畝圓老第一個字數據相減
SUB AX,FARA2
4)將AX中的結果存入DATA3的第一個空單元.
MOV DATA3,AX
5)將DATA1的第二個字腔芹數據傳送給AX.
MOV AX,DATA1+2
6)將AX的內容與SARA2的第二個數據及第一次相減速的借位相減
SBB AX,SARA2+2
7)將AX的結果存入DATA3的第二個單元中
4.3在A1和A2的字單元中各有一個帶符號數字數據,試求出A1和A2組成的雙字長數的絕對值,存入B1和B2的字單元中,畫出程序流程圖和編寫職程
序段,包括偽指令和指令序列.
DATA SEGMENT
A1 DW n1
A2 DW n2
B1 DW ?
B2 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MOV AX,DATA
MOV DS,AX
CMP WORD PTR A2,7FFFH
JNL CODE1
NEG WORD PTR A2
NEG WORD PTR A1
CODE1: MOV AX,A1
MOV DX,A2
MOV B1,AX
MOV B2,DX
MOV AH,00H
INT 21H
CODE ENDS
END
4.4將存放在位元組變數BCD1中的兩個十進制數的ASCII碼合並為一位元組壓縮的BCD碼,存入BCD2中,試編寫程序段
DATA SEGMENT
BCD1 DB 37H,38H
BCD2 DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV AL,BCD1+1
AND AL,0FH
MOV BL,BCD1
MOV CL,4
SHL BL,CL
OR AL,BL
MOV BCD2,AL
CODE ENDS
END START
4.5分別編寫出下列各算式的程序段,其中X、Y、Z、R和W均為存迅升放16位無符號數的單元符號地址:
DATA SEGMENT
X DW 3031H
Y DW 3032H
Z DW 3033H
R DW 3034H
W DW 3035H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
;1)Z<---W+(z-x)
MOV AX,Z
SUB AX,X
ADD AX,W
MOV Z,AX
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;2)Z<---(W*X)/(Y+6),R<---余數
MOV AX,W
MUL X
MOV BX,Y
ADD BX,6
DIV BX
MOV Z,AX
MOV R,DX
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;3)Z<---W-(X+6)-(R-9)
MOV AX,R
SUB AX,9
MOV BX,X
ADD BX,6
MOV CX,W
SUB CX,BX
SUB CX,AX
MOV Z,CX
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;4)Z<---((W-X)/5×Y)×2,余數丟棄
MOV AX,W
SUB AX,X
DIV 5
MOV AH,00H
MUL Y
MUL 2
MOV Z,AX
MOV R,DX ;計算結果如果是雙位元組,將高16位存入Z字單元後面的一個字位中。
DTATA ENDS
END START
5.1分支程序可分為哪些功能部分?用流程圖的形式來表示各種分支程序的功能組成部分?雙分支條件是怎麼樣才能產生?多分支條件是怎麼樣形成的?各種分支程序判斷條件的方法有什麼不同?實現分支的方法有什麼不同?
分支程序可分為:產生條件、測試、定向、標號。流程圖見教材P119圖5-4。用能夠影響CF、ZF、OF的指令來產生條件,如CMP,SUM,AND,TEST,位移指令。(其餘答案略,書上都有)
5.2試分析下列程序段,說明完成了什麼操作?程序執行前後,HEXNUM位元組單元的內容是什麼?
ASCNUM DB 41H
HEXNUM DB ?
MOV AH,ASCNUM
CMP AH,39H
JBE NEXT
SUB AH,7
NEXT: SUB AH,30H
MOV HEXNUM,AX
HLT
完成了當ASCNUM所表示的十六進制數的ASCII碼轉換成十六進制數,並存入ASCNUM位元組單元的低四位,執行前是空單元,執行後是0A。
5.3試編寫完成題5.3圖的流程圖所規定的操作
P1: MOV AX,-1
JMP P4
P2: MOV AX,0
JMP P4
P3: MOV AX,1
JMP P4
CMP AX,-1
JLE P1
JL P2
JMP P3
p4: MOV AL,00H
INT 21
5.4測試ALPHA位元組變數單元中的ASCII碼字元,進行如下操作:
1)若為數字字元,送入NUM位元組單元中,置標記FLAG為0
2)若為大寫字母字元,送入BIGCHR位元組單元中,置標記FLAG為0
3)若為小寫字母字元,送入SMLCHR位元組單元中,置標記FLAG為0
作者: 218.27.73.* 2005-9-3 09:21 回復此發言
--------------------------------------------------------------------------------
5 匯編語言程序設計課後習題答案
4)否則,置標記FLAG為1
DATA SEGMENT
ALPHA DB "A"
NUM DB ?
BIGCHR DB ?
SMLCHR DB ?
FLAG DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV AX,ALPHA
CMP AX,30H
JBE N4
CMP AX,39H
JA N1
MOV NUM,AX
JMP N5
N1: CMP AX,41H
JB N4
CMP AX,5A
JA N2
MOV BIGCHR,AX
JMP N5
N2: CMP AX,61H
JB N4
CMP AX,7a
JA N4
MOV SMLCHR,AX
JMP N5
N4: MOV FLAG,1
JMP N3
N5: MOV FLAG,0
N3: MOV AX,00H
INT 21
CODE ENDS
END START
5.5設在變數單元A、B和C中存放有三個數,若三個數都不為0,則求出三個救之和存入D;若有一個為0,則將其它兩個單元也清零,請編寫此程
序段。
DATA SEGMENT
A DB 10
B DB 20
C DB 30
D DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CMP A,0
JZ P1
CMP B,0
JZ P1
CMP C,O
JZ P1
MOV AL,0
ADD AL,A
ADD AL,B
ADD AL,C
MOV D,AL
JMP P2
P1: MOV A,0
MOV B,0
MOV C,0
P2: MOV AH,0
INT 21H
CODE ENDS
END START
5.6假設X和X+2單元與Y和Y+2單元中存放的是兩個雙字有符號數據(X、Y為低位字)。說明下列程序段所完成的是什麼操作?若JBE L2指令
改為JB L2指令,在操作結果上有什麼區別?AX=1和 AX=2分別說明了什麼?
MOV DX,X+2
MOV AX,X
ADD AX,X
ADC DX,X+2
CMP DX,Y+2
JL L2
JG L1
CMP AX,Y
JBE L2
L1: MOV AX,1
JMP EXIT
L3: MOV AX,2
EXIT: HLT
將X的雙字單元中的數乘2後與Y的雙字單元中的數進行比較。如果X小於等於Y,將2寫入AX中;如果X大於Y,將1寫入AX。
如果裝JBE L2指令改為JB L2,側是X等於Y時,將1寫入AX。其餘同上。
5.7試編寫一段程序,要求比較數組ARRAY中的三個16位有符號數。根據比較結果,置FLAG標志:
1)如果三個數都不相等,則置FLAG為零。
2)如果三個數有兩個相等,則FLAG為1。
3)如果三個數全相等,則FLAG為2。
DATA SEGMENT
ARRAY DW 1000H,2000H,3000H
FLAG DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,ARRAY
MOV BX,ARRAY+2
MOV CX,ARRAY+4
MOV DL,0
CMP AX,BX
JNZ N1
INC DL
N1: CMP BX,CX
JNZ N2
INC DL
CMP DL,2
JZ N5
N2: CMP AX,CX
JNZ N3
INC DL
JMP N5
N3: CMP DL,1
JNZ N4
JMP N5
N4: MOV DL,0
JMP N6
N5: MOV FLAG,DL
N6: MOV AH,00H
INT 21H
CODE ENDS
END START
6.1 循環參數置初值部分,循環工作部分和循環控制部分。(這種題我不太會做,大家上書上找吧。)
6.2
1)將從2開始的連續10個偶數相加,將和存入SUM。SUM=110
2)將DAT1的後五個單元的數5,6,7,8,9依次送入DAT2的5個單元中去。DAT2的內容是5,6,7,8,9
6.3
1)
LEA AX,BUF1
LEA BX,BUF2
MOV CX,N
LOP1: MOV AL,[AX]
MOV [BX],AL
INC AX
INC BX
LOOP LOP1
2)
LEA SI,BUF1
LEA DI,BUF2
MOV CX,N
CLD
REP MOVSB
3)
LEA SI,BUF1
LEA DIBUF2
MOV CX,N
CLD
LP: LODSB
STOSB
LOOP LP
6。4
LEA BX,NUMBER
LEA SI,PLUS
MOV CX,256
LP: MOV AL,[BX]
INC BX
AND AL,AL
JNS L1
LOOP LP
JMP L2
L1: MOV [SI],AL
INC SI
LOOP LP
L2: HLT
6.5
DATA SEGMENT
GARDE DB a1,a2,a3,...a100
A90 DB 0
A80 DB 0
A70 DB 0
A60 DB 0
A0 DB 0
DATA EDNS
CODE SEGMENT
作者: 218.27.73.* 2005-9-3 09:21 回復此發言
--------------------------------------------------------------------------------
6 匯編語言程序設計課後習題答案
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,AX
MOV CX,100
LOP1: CMP [BX],60
JB P1
CMP [BX],70
JB P2
CMP [BX],80
JB P3
CMP [BX],90
JB P4
JMP P5
B1: BX+1
LOOP LOP1
P1: INC A0
JMP B1
P2: INC A60
JMP B1
P3: INC A70
JMP B1
P4: INC A80
JMP B1
P5: INC A90
JMP B1
CODE ENNS
END START
6.6
1) MOV FLAG,FFH
LEA AX,DATA1
LEA BX,DATA2
MOV CX,N
P0: CMP [AX],[BX]
JNZ P1
INC AX
INC BX
LOOP P0
JMP P2
P1: MOV FLAG,0
MOV DATA1,AX
MOV DATA2,BX
P2: HLT
2) ASSUME CS:CODE,DS:DATA,ES:DATA ;設DATA為數據段地址
MOV AX,DATA ;
MOV DS,AX
MOV ES,AX
LEA SI,DATA1
LEA DI,DATA2
MOV CX,N
CLD
REPE CMPSB
JNZ P1
MOV FLAG,0FFH
JMP P2
P1: MOV FLAG,0
MOV DATA1,[SI] ;參考書有在前面有兩句DEC SI,DEC DI不知道是什麼意思
MOV DATA2,[DI]
p2: HLT
6.7 LEA AX,BUFFER1
ADD AX,N
DEC AX
LEA BX,BUFFER2
MOV CX,N
LOP1: MOV DX,[AX]
MOV [BX],DX
DEC AX
INC BX
LOOP LOP17.1
主程序與子程序之間傳遞數據必須經過中間媒體,如CPU中的寄存器,肉存中的堆棧或工作單元來進行。分別對應一種傳遞方法。
寄存器存儲數據小,但速度快。
堆棧後進先出,選進後出,有數量限制。多用於現場保護。存儲單元有最大限度的自由度。
7.2時間延遲程序,為了等待一段時間。
7.3
把以DEST首地址的連續100個位元組單元中的數據移到以SOURCE為首地址的連續100個位元組單元中。(CALL會將CS,IP入棧,版主,CS也會入棧嗎?這是不是因為是段外轉移的原因呀)
後面的兩道大題考試時出的可能性很小,由於時間原因,我暫時就不做了
第二章課後習題及答案 (2003-7-2 16:38:00)
--------------------------------------------------------------------------------
2.1 (1) MOV CX,[BX][SI]
(2) ADD AX,value[BX]
(3)? CMP 0B6H,NUM
(4) TEST [COUNT+BP+DI],80H
(5) ROL AH,4 或 ROR AH,4
(6) XOR [SI],[SI]
2.2 (1)----C
(2)----A
(3)----B
(4)----E
(5)----D
2.3 (1) AX=1200H
(2) AX=647AH
(3) (10050H)=7DH,(10051H)=0B7H
ZF=0,SF=1,CF=0,OF=0
(4) (12AD0H)=0F7H,CF=0,OF=0
(5) (12BD0H)=31H,CH=31H
2.4 (1)MOV AX,CL ;字與位元組混用。
(2)MOV CS,AX ;CS控製程序區,不可放數據。
(3)INC BETA[BP] ;對存儲器操作數,須指明是字或位元組。
(4)MOV ES,1850H;立即數不能送段寄存器。
(5)ADD BX,DS;對ADD指令,段寄存器不可作SRC或DST.
(6)AND AX,[CX];?????
後面的題目,我不知道出題者是什麼意思,看不懂。麻煩樓主公布一下答案。謝謝!
2.7可以用MOV CX,BLOCK+10
2.10這段程序執行一下,肯定跑飛。
作者: 218.27.73.* 2005-9-3 09:21 回復此發言
--------------------------------------------------------------------------------
7 回復:匯編語言程序設計課後習題答案
XIEXIE
I LOVE YOU
2. 求解答,電磁場與電磁波里的一道求電位的題
該題用柱面坐標系求解,無窮遠處電位為0,為了求任一點的電位就要知道空間的電場強度表達式,用微元法,線電荷上面一小段為dl,其上帶有電荷ρL*dl,視為點源,用庫侖定律可求出該電荷對巧納空間任一點的電場,注意該處用的是柱面坐標系,孝歷沒因此把空間任一點表示為用(R,theta,z)表示。本題的爛卜難點是建立坐標系,建議取線電荷中點為坐標原點。答案我沒有驗證,希望對你有幫助。
3. 電磁場與電磁波的問題 求具體的答案
首先電磁波能在任何介質傳播,這是非常肯定的。
但是當電磁波在傳播的途中遇到固體阻礙物的時候,特別是金屬一類的阻礙物的時候,電磁波的能量就會減弱或者消失。那是因為固體阻礙物,特別是金屬的密度大,當電磁波要穿越它(也就是通常說的電磁波的傳播)的時候,電磁波微弱的能量就要被它吸收掉。所以,我們通常要對一般的電磁波進行屏蔽的時候,非常簡單的拿個金屬罩住就行了。如果電磁波的能量足夠大,你就可以看到波的傳播了,高中或大學的試驗室可以提供波在固體物質傳播的試驗。
像你所說的,電磁波是由電磁場擾動形成的,所以就是因為有了電磁場的作用才有了電磁波的傳播,所以電磁場不論你中間是是什麼介質,它都是客觀存在的,它的存在形成了電磁波。你可以這樣認為電磁場是不能傳播的,電磁場擾動形成的電磁波才能傳播。不明白請追問。
電磁場是以波的形式向外傳波的 電磁場實質是空間傳波的電場與磁場 變化的電場周圍產生磁場 變化的磁場周圍又產生電場 這樣電磁場就以這兩種橫波的形式向外傳波 電場和磁場在傳波的過程中相互轉化 且電場平面與磁場平面互相垂直 如果說如何開始傳波就是空間變化的電場或磁場產生的那一刻就開始傳播了,書上說電磁場能傳播,只有這個解釋最合理了。那就是電與磁的相互轉化
