




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章基礎(chǔ)知識(shí)檢測(cè)點(diǎn)1.1(第9頁)(1 ) 1個(gè)CPU的尋址能力為8KB,那么它的地址總線的寬度為 13位。(2) 1KB的存儲(chǔ)器有1024個(gè)存儲(chǔ)單元,存儲(chǔ)單元的編號(hào)從0到1023。(3) 1KB的存儲(chǔ)器可以存儲(chǔ) 8192( 2人13 )個(gè)bit,1024個(gè)Byte。(4) 1GB 是 1073741824( 2人30 )個(gè) Byte、1MB 是 1048576(2人20 )個(gè) Byte、1KB 是1024 ( 2A10)個(gè) Byte。(5) 8080、8088、80296、80386的地址總線寬度分別為 16根、20根、24根、32根,貝U它們的尋址能力分別為 :64 ( KB )、1 (
2、 MB )、16( MB )、4 ( GB )。(6) 8080、8088、8086、80286、80386的數(shù)據(jù)總線寬度分別為8根、8根、16根、16根、32根。則它們一次可以傳送的數(shù)據(jù)為:1 ( B)、丄(B)、2 (B)、2 ( B)、4 ( B)。(7) 從存中讀取1024字節(jié)的數(shù)據(jù),8086至少要讀 匹次,80386至少要讀256次。解題過程:(1 ) 1KB=1024B , 8KB=1024B*8=2AN, N=13。(2) 存儲(chǔ)器的容量是以字節(jié)為最小單位來計(jì)算的,1KB=1024B 。(3) 8Bit=1Byte , 1024Byte=1KB (1KB=1024B=1024B*8
3、Bit)。(4 ) 1GB=1073741824B (即 2人30 ) 1MB=1048576B (即 2人20 ) 1KB=1024B (即 2人10 )。( 5 )一個(gè) CPU 有 N 根地址線,則可以說這個(gè) CPU 的地址總線的寬度為 N 。這樣的 CPU 最多可以尋找 2的 N 次方個(gè)存單元。 (一個(gè)存單元 =1Byte )。(6) 8根數(shù)據(jù)總線一次可以傳送 8位二進(jìn)制數(shù)據(jù)(即一個(gè)字節(jié)) 。(7) 8086 的數(shù)據(jù)總線寬度為 16 根(即一次傳送的數(shù)據(jù)為 2B) 1024B/2B=512 ,同理1024B/4B=256。( 8 )在存儲(chǔ)器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。第2章
4、寄存器檢測(cè)點(diǎn)2.1(第19頁)(1)寫出每條匯編指令執(zhí)行后相關(guān)寄存器中的值。第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)只能使用目前學(xué)過的匯編指令,最多使用4條指令,編程計(jì)算2的4次方。解答如下:mov ax,2add ax,axadd ax,axadd ax,ax檢測(cè)點(diǎn)2.2(第25頁)(1) OOO1OH,1OOOFH(2) 1001H,2000H第2題說明:因?yàn)槎蔚钠鹗?/p>
5、地址要為16的倍數(shù)。所以當(dāng)段地址小于1001H或大于2000H時(shí)CPU都無法尋到。(1)解題過程:物理地址=SA*16+EAEA的變化圍為Ohffffh物理地址圍為(SA*16+0h)(SA*16+ffffh)現(xiàn)在SA=0001h,那么尋址圍為(0001h*16+0h)(0001h*16+ffffh) =OO1Oh1OOOfh(2)解題過程:物理地址=SA*16+EA20000h = SA*16+EASA=(20000h-EA)/16=2000h-EA/16EA 取最大值時(shí),SA=2000h-ffffh/16=1001h,SA為最小值EA取最小值時(shí),SA=2000h-0h/16=2000h,S
6、A為最大值這里的ffffH/16=fffh 是通過 WIN自帶計(jì)算器算的按位移來算確實(shí)應(yīng)該為fff.fh,這里小數(shù)點(diǎn)后的f應(yīng)該是省略了單就除法來說,應(yīng)有商和余數(shù),但此題要求的是地址最大和最小,所以余數(shù)忽略了如果根據(jù)位移的算法(段地址 *16 = 16進(jìn)制左移一位),小數(shù)點(diǎn)后應(yīng)該是不能省略的我們可以反過來再思考下,如果SA為1000h的話,小數(shù)點(diǎn)后省略SA=1000h,EA 取最大ffffh,物理地址為Iffffh,將無法尋到20000H 單元 這道題不應(yīng)看成是單純的計(jì)算題檢測(cè)點(diǎn)2.3(第35頁)答:CPU修改了 4次IP的值。情況如下:第1次:執(zhí)行完 mov ax,bx 后第2次:執(zhí)行完sub
7、 ax,ax后;該步執(zhí)行后,寄存器 ax清零第3次:讀入jmp ax后第4次:執(zhí)行完jmp ax后 連續(xù)兩步ip均為0最后IP的值為0;最后IP的值為0000H,因?yàn)樽詈骯x中的值為0000H,所以IP中的值也為0000H第三章寄存器(存訪冋)檢測(cè)點(diǎn)3.1(第55頁)(1)(題目:略)第一空:2662H第二空:E626H第三空:E626H第四空:2662H第五空:D6E6H第六空:FD48H第七空:2C14H第八空:0000H第九空:00E6H第十空:0000H第十一空:0026H第十二空:OOOCH提示:此題可在DEBUG中利用E命令在本機(jī)上按照題目中所給出的存單元及其數(shù)據(jù)進(jìn)行相應(yīng)地修改,然
8、后再用A命令進(jìn)行寫入(題目中所給出的)相應(yīng)的匯編指令,最后再進(jìn)行T命令 進(jìn)行逐步執(zhí)行,以查看相應(yīng)結(jié)果。c:C: TINDOTSsyst e32cd. exe - debug0000:000068. ?010.80A7.F000.30Q妣:師旳816.MM03.120000:00108B.6201.26?0.E600. D60000:001007.DH10.0002.00-e 0000:0000EF66CC2G01.60 01.20 06.2E0ZCG323G 000077112UBO E63O 0W220 0 0 0-r ax AX RRRR :0000 rr bxBX UUUU :0000r
9、 C3;CS 0AF?H ip IP 0100 :ftX-0000DX-0000DS=0AF7 ES=0AF7 1RRR:RRfin RRRP1 -a 1000:0 1000:0000CH-0800:SS=0AF7 iADDDH-0000CS=1000SP-FFEE DP-0000 SI-0000DI-0000 IP=0000 NU UP El PL NZ NA P0 NC FRXSIl.ALDS:RnR=CD1000:0000mouax,l1000:0003mouds, ax1000:0005mouax, 00001000:0008noubx,00011000:000Cnovax, bx10
10、00:000Enouax, 00001000:0011noubx,00021000:0015addaxbx1000:001?addax, 0004J1000;001BlIOVax,01000:001Emoual,000210RB:0R21mou1000:0024noubl,000CJ1000:0028addal,bllUUM:UU2fiC:IKDOVSsyste32cBd.exe - debugBP=0000 SI=0000 DI=0000NU UP El PL NZ NA PO NCDS:0001=E626AX=2662 BX=0000 CX=0000 DX=0000 SP=FFEE DS=
11、0001 ES=0AF7 SS=0AF? CS=1000 IP=0008 1000:0008 8B1E0100MOU BX.E0001-tftX=2GG2 BX=EG26 DS=0001 ES=0AF7 1000:000C 89D8 -tCX=0000DX=0000 SP=FFEESS=0AF7 CS=1000 IP=00OCMOU AX,BXBP=0000 SI=0000 DI=0000NU UP El PL NZ NA PO NCAX-E626 BX=E626 DS=0001 ES=0AF7 1000:000E A18000 -tCX-0000 DX-0000 SP-FFEESS=0AF?
12、 CS=1000 IP=00OEMOUAX,0080BP-0009 SI-0000 DI-0800NU UP El PL NZ NA PO NCDS:0000=2662AX=2662 BX=E626 DS=0001 ES=0AF7 ! 1000=0011 8B1E0200 -tCX=0000DX=0000 SP=FFEESS=0AF? CS=1000IP=0011HOUBX.C0002BP=0000 SI=0000 DI=0000NU UP El PL NZ NA PO NCDSM002 D6E6AX=2662 BX=D6E6 CX=0000 DX=0000 SP=FFEEDS=0001 ES
13、=0AF7 SS=0AF7 CS=1000 IP=0015 1000:0015 01D8ADDAX.BXBP=0000 SI=0000 DI=0000NU UP El PL NZ NA PO NCc c C; IID0TS3ysteB32(J- ese - debugCX=0000SPFFEEBP=6060SI=RBBfiDI =fl00DS=00Q1ES=0AF7SS=0fiF7CS=100PiIP=B017MU UP ElNG HZ NAPE NC703HG040OADD|腫-rPBfMlM?: f!3fl4=2FCCAX=2C14BX=D6E6CX=Q888DX=0800SP=FFEEB
14、P=0a00S=0000DI=0090DS=0091ES=0AF7SS=0AF7CS=180OIP=B01BMU UP ElPL HZ ACPE C1OUU: -tBUUMtWHOUnx,HUHMAX =01儷BX=D6E6DX=000OSP=FFEEBP=0900SI=0000DI=0090DS-0061ES-0AF?eG-anr?GG-1000IT-G01ENU UP ElPL HZ ACrr aiyuw;aMiA60200HOUAL,16002餉詢脳2二酩AX=RHE6BX=DfiF/CX=3S08DX=OHRSP=FFEE$J=0H00DT=PRHP|DS=(3WB1EG =0RF/S
15、G=UAF7CS =1000IP=H021NU UP ElPL NZ ACPE創(chuàng)1000:0021BBQ00OMOUBX,0600RK=UUhbBK=ldMtJ兇id也BX=U0MHSP=FFEESJ =KM(dMD=00eiES =0fiF7SS=0flF7CS-=1000IP=0024NU UP ElPL NZ ACpe cv1000-00218 A丄 EOC00riouBL,600CDS e90C-Z&AX=00ESBX=902ECX=0S3SDX=0000SP=FFEEBF=0000SI=&0&DI=0B0Bdk =nnmEG=0fiF7SS=RAF7CS=inOflIP=002RNU
16、 IIP ElPI, N ACPE C1000:0920 rQ0D&ADDAL,BLAK=0B0CCM=0030SP-EFEEBF-B0B0SI=0009DI=000BBS=0001ES=0fiP7SS-0AF7CG-10001P=0B2AHU UP ElPL NZ NAPE CV0000ADDBK +SIJ,ALDS:B026=9E指令序列如下:mov ax,6622hjmp OffO:O1OOmov ax,2000hmov ds,axmov ax,0008mov ax,00022.寫出CPU執(zhí)行每條指令后,CS、IP和相關(guān)寄存器中的數(shù)值。寄存器CSIPDSAXBX指令序列J初始值t2000
17、H00001000H00mov ax,6622h2000H00031000H6622H0000jmp OffO:O1OO1000H00001000H6622H0000mov ax,2000h1000H00031000H2000H0000mov ds,ax1000H00052000H2000H0000mov ax,00081000H00082000HC389H0000mov ax,00021000H000B2000HEA66H00003.再次體會(huì):數(shù)據(jù)和程序有區(qū)別嗎?如何確定存中的信息哪些是數(shù)據(jù),哪些是程序?檢測(cè)點(diǎn)3.2(第70頁)(1)補(bǔ)全下面的程序,使其可以將10000H-1000FH 中的
18、8個(gè)字,逆序拷貝到20000H-2000FH 中。mov ax,1OOOHmov ds,axmov ax,2000Hmov ss,axmov sp,10h(2 )補(bǔ)全下面的程序,使其可以將10000H-1000FH 中的8個(gè)字,逆序拷貝到20000H-2000FH 中。mov ax,2000Hmov ds, axmov ax,1OOOH mov ss, axmov sp,0檢測(cè)點(diǎn)6.1(第129頁)(1 )下面的程序?qū)崿F(xiàn)依次用存0:00:15單元中的容改寫程序中的數(shù)據(jù),完成程序:assume cs:codesgcodesg segme ntdw 0123h,0456h,0789h,0abch,
19、0defh,0fedh,0cbah,0987hstart: mov ax,0mov ds, axmov bx,0mov cx,8s: mov ax,bxmov cs:bx,axadd bx,2loop smov ax,4c00hint 21hcodesg ends end start(2 )下面的程序?qū)崿F(xiàn)依次用存0:00:15單元中的容改寫程序中的數(shù)據(jù),數(shù)據(jù)的傳送用棧來進(jìn)行。棧空間設(shè)置在程序。完成程序:assume cs:codesgcodesg segme ntdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdw 0,0,0,0,0,0,0
20、,0,0,0;10個(gè)字單元用作棧空間,所以棧空間的大小為10*2=20,化成16進(jìn)制即為14start: mov ax, codesg; 或 mov ax, cs_mov ss ,axmov sp, 24h;或 mov sp, 36;10h+14h=24hmov ax,0mov ds, axmov bx,0mov cx,8s: push bxpop cs:bx;或pop ss:bx;關(guān)鍵在于cs與ss此時(shí)地址相同add bx,2loop smov ax,4c00hint 21hcodesg ends end start檢測(cè)點(diǎn) 9.1(第183 頁)(1 )程序如下 :assume cs:cod
21、edata segmentdw 2 dup (0)data endscode segmentstart: mov ax, datamov ds, axmov bx,0jmp word ptr bx+1code endsend start若要使 jmp 指令執(zhí)行后, CS:IP 指向程序的第一條指令,在 data 段中應(yīng)該定義哪些數(shù)據(jù) ?答案 db 3 dup (0)答案 dw 2 dup (0)答案 dd 0jmp word ptr bx+1為段轉(zhuǎn)移,要 CS:IP 指向程序的第一條指令,應(yīng)設(shè)置 ds:bx+1 的字單元 (2個(gè)字節(jié) )存放數(shù)據(jù)應(yīng)為 0,則 (ip)=ds:bx+1=0簡單來說
22、就是,只要 ds:bx+1 起始地址的兩個(gè)字節(jié)為 0 就可以了(2 )程序如下assume cs:codedata segme ntdd 12345678hdata endscode segme ntsta rt: mov ax,datamov ds,axmov bx,0offset startseg code mov bx, bx ;或 mov bx, word ptr 0 或 mov bx,mov bx+2, _cs_ -或 mov bx+2, cs ;或 mov bx+2,jmp dword ptr ds:0code endsend start補(bǔ)全程序,使用jmp指令執(zhí)行后,CS:IP指
23、向程序的第一條指令。第二格可填 mov bx+2,csmov bx+2,csmov bx+2,seg code 等。解析:jmp dword ptr ds:O 為段間轉(zhuǎn)移,(cs)=(存單元地址+2),(ip)=(存單元地址),要CS:IP指向程序的第一條指令,第一條程序地址cs:0,應(yīng)設(shè)置CS:IP指向cs:0程序中的mov bx,bx 這條指令,是將ip設(shè)置為0mov bx+2,cs ,將cs這個(gè)段地址放入存單元執(zhí)行后,cs應(yīng)該不變,只調(diào)整ip為0, (ip)=ds:0=0(3 )用Debug查看存,結(jié)果如下:2000:1000 BE 00 06 00 00 00 則此時(shí),CPU執(zhí)行指令:
24、mov ax,2000hmov es,axjmp dword ptr es:1000h后,(cs)= 0006H,(ip)= 00BEH解析:jmp dword ptr 為段間轉(zhuǎn)移,高位存放段地址,低位存放偏移地址(cs)=( 存單元地址 +2) , (ip)=( 存單元地址 )根據(jù)書 P16 ,對(duì)于寄存器 AX,AH 為高位(前1字節(jié)為高位 ),AL 為低位(后1字節(jié)為低位 ) 推算出 (存單元地址 )=00BEH , (存單元地址 +2)=0006H根據(jù)書 P182 ,高位存放段地址 (后2 個(gè)字節(jié)為高位 ),低位存放偏移地址 (前2個(gè)字節(jié)為低位 ) (cs)=( 存單元地址 +2) ,
25、(ip)=( 存單元地址 )推算出 (cs)=0006H , (ip)=00BEH.檢測(cè)點(diǎn) 9.2(第184 頁)補(bǔ)全編程,利用 jcxz 指令,實(shí)現(xiàn)在存 2000H 段中查找第一個(gè)值為 0的字節(jié),找到后,將它 的偏移地址存儲(chǔ)在 dx 中。assume cs:code code segme ntstart: mov ax,2000hmov ds, axmov bx,0s: mov ch,0 mov cl,bxcxz ok ;當(dāng) cx=0 時(shí),CS:IP 指向 OKinc bx jmp short sok: mov dx, bxmov ax ,4cOOhint 21hcode ends end
26、start檢測(cè)點(diǎn)9.3(第185頁) 補(bǔ)全編程,利用loop指令,實(shí)現(xiàn)在存2000H段中查找第一個(gè)值為0的字節(jié),找到后,將它 的偏移地址存儲(chǔ)在 dx中。assume cs:codecode segme nt start: mov ax,2000hmov ds, axmov bx,0s:mov cl,bxmov ch,0inc cx;只要保證cx0,才能執(zhí)行l(wèi)oop循環(huán),切記!inc bxloop sok: dec bxmov dx, bxmov ax,4c00hint 21hcode ends end start檢測(cè)點(diǎn)10.1(第191頁) 補(bǔ)全程序,實(shí)現(xiàn)從存1000 : 0000處開始執(zhí)行指
27、令。assume cs:codestack segme ntdb 16 dup (0)stack endscode segme ntstart:mov ax, stackmov ss, axmov sp,16mov ax, 1000hpush axmov ax, 0push axretfcode ends end start執(zhí)行 reft 指令時(shí),相當(dāng)于進(jìn)行:pop ippop cs根據(jù)棧先進(jìn)后出原則,應(yīng)先將段地址 cs 入棧,再將偏移地址 ip 入棧。檢測(cè)點(diǎn) 10.2( 第192 頁 )下面的程序執(zhí)行后, ax 中的數(shù)值為多少?用 debug 進(jìn)行跟蹤確認(rèn),call 標(biāo)號(hào)” 是將該指令后的第
28、一個(gè)字節(jié)偏移地址入棧,再轉(zhuǎn)到標(biāo)存地址機(jī)器碼匯編指令執(zhí)行后情況1000:0b8 00 00mov ax,0ax=0ip 指向 1000:31000:3e8 01 00call spop ipip 指向 1000:71000:640inc ax1000:758s:pop axax=6號(hào)處執(zhí)行指令。檢測(cè)點(diǎn) 10.3( 第192 頁 )面的程序執(zhí)行后, ax 中的數(shù)值為多少?存地址機(jī)器碼匯編指令執(zhí)行后情況1000:0b8 00 00mov ax,0ax=0,ip 指向 1000:31000:39a 09 00 00 10call far ptr spop cs,pop ip,ip指向 1000:910
29、00:840inc ax1000:958s: pop axax=8hadd ax,axax=10hpop bxbx=1000hadd ax,bxax=1010h檢測(cè)點(diǎn) 10.4( 第194 頁 )下面的程序執(zhí)行后, ax 中的數(shù)值為多少?存地址機(jī)器碼匯編指令執(zhí)行后情況1000:0b8 06 00mov ax,6ax=6,ip指向 1000:31000:3ff d0call axpop ip,ip指向 1000:61000:540inc ax1000:658mov bp ,spbp=sp=fffeh;棧頂?shù)牡刂窚p去 2,存放著 05hadd ax,bp ax=6+ds:(fffeh)=6+5=0
30、bhip用debug 進(jìn)行跟蹤確認(rèn),“ call ax(16位reg) ”是先將該指令后的第一個(gè)字節(jié)偏移地址 入棧,再轉(zhuǎn)到偏移地址為 ax(16位reg)處執(zhí)行指令。編譯無法通過,只能理論分析ci C:ITOOISsysteJ2cid eze - delucCcpjiFight 1VB5-2MK1 nicFOSOft Corp.:XDocunents and. be11;ingpsAdminist;ratorufug is not r*ecojnized as an internal or external conmand, peralble program or batch f ileaj;
31、Dacunents and E號(hào)11inQfsHdniniistrtorAdebuy -a 1000:0000:00胸 odup ax,6090:0003 call axmRzRRRft03B:S008-d 丄60S:Qi I胴訶:創(chuàng)祁口 (1(1:000CW 耐 20030:000090=0040w ax, 6 call ax inc axnnuadd axbp008:007003 BR 17 4A UD E8 M EQ IE 1592 an EG Bl2B ns2-1DS4ACFDFF附44FFFE BS rs 8An 0 3 B 3 B D840E5CF4RFftARDflEE49FE0
32、3ft?廁A3B3EB an1673-RD fi9-5A bD-flfi 1E-CB CD-E8C2-E983-56* 8H HA694A99Cfi EBHR E2 CRIEBOFDFEEGftp ft!749B4298E024A1C3B6D8F33CE0FEA4960367fl7fl550803E4B260F71720SDF4320C3A2c - C; WIVDOTSXfystcm2cbJ. &xe - delucPa 1000:01(WB:0flA3 lUkJU:UUMb 1000=0006 11030:0O0DHrAX=SQ00DS=1378 1378:0180 f csCS 137R
33、:1060 r ioip eieo :翊制anov axb call axinc axnov bp,sp add ax, LJbpBX =0000 CK=SB0B DX =3000 SP=FFEE BP=0S00$1=0900 DI=S00QES=137 SS=1371CS=1378 !P=aiO0 NU UP El PL NZ MA PO NC6009ADD BX +S1LALDE:盹盹 乂 DId 險(xiǎn) s-dos 7SitC VtflNDMSkEst tr32 cm(L ex e - dtbuMTVTM匚鞏i謂効無埶的令CSOddc IF 0006 Offfl F* Id fO h 迄揮“
34、關(guān)ST 舞止應(yīng)用程序X=0Q06 BX =0301=1279 ES =127!I =0(j0SPO NC030:0003 FFD0 tx=ees6ex =aaaBex-seeom=3000gp-fpecdp=oso0 s t-daoe di-boobS=1378ES =1378SS=13?8CG-10G0IP=60O6NU UP 1 PL NZ NA PO NC090:000G 09ELHOU BP,Er檢測(cè)點(diǎn) 10.5( 第195 頁 )(1 )下面的程序執(zhí)行后, ax 中的數(shù)值為多少?assume cs:codestack segmentdw 8 dup (0)stack endscode
35、 segmentstart: mov ax, stackmov ss, axmov sp,16mov ds, axmov ax,0call word ptr ds:0ehinc axinc axinc axmov ax,4c00h int 21hcode ends end start| 凱 C: Iin)OTS syst2 c ouand.*lote - Press 曾 5”1Qp And 1 Enter1 toquit debug node*2?32B831Z?HOUfiX,293丄2932:0083 0ED8HOUSS,AM2?32;0O05 DC丄900HOUSF,601B2932:BR
36、BB 8EDSHOUB8Q9B0HOUFFlbBE00CALL000E 12932:0011 40IHCAM2932:0012 40INGAX2932:6Q13 40INCAX2932:0014 B8094CHOURx,4cea2232:0017 CD21INT212932:0019 229A0074AMDBL,BF+SI+749005F&C?ADDAK,C?F6當(dāng)程序執(zhí)行call word ptr ds:0EH 語句時(shí),相當(dāng)于進(jìn)行:1: PUSH IP(此時(shí)IP的值為CALL語句下一條語句的偏移地址,也就是INC AX的偏移地址)2: JMP WORD PTR SS( 因?yàn)镈S等于SS):0
37、EH,此時(shí)程序跳轉(zhuǎn)至U CS:SS:OEH處執(zhí)行,因?yàn)镾S:0EH的值為0,所以跳轉(zhuǎn)到CS:0處開始執(zhí)行,也就是程序的第一條語句 MOV AX, STACK, 當(dāng)程序再一次執(zhí)行到 call word ptr ds:0EH時(shí)又進(jìn)行上面的兩步,但是此時(shí)SS:OEH的值已經(jīng)不是0 了,而是上一次執(zhí) 行PUSH IP時(shí)壓入的IP的值,而這個(gè)IP正是CALL語句下一 條語句的偏移地址 也就是INC AX的偏移地址所以程序跳轉(zhuǎn)到語句INC AX處執(zhí)行,所以AX的值為3.2 )下面的程序執(zhí)行后, ax 和 bx 中的數(shù)值為多少?assume cs:codesgstack segmentdw 8 dup(0)
38、stack endscodesg segmentstart:mov ax, stackmov ss, axmov sp,10hmov word ptr ss:0,offset s;(ss:0)=1ahmov ss:2,cs;(ss:2)=cscall dword ptr ss:0;cs入棧,ip=19h 入棧,轉(zhuǎn)到cs:1ah處執(zhí)行指令; ss:0ch = 19hss:0eh = csnops: mov ax, offset s;ax=1ahsub ax, ss:0ch;ax=1ah-(ss:0ch)=1ah-19h=1mov bx, cs;bx=cs = 0c5bhsub bx, ss:0e
39、h;bx =cs-cs =0mov ax,4cOOhint 21hcodesg endsend startSF,6010IJORD PTE Q00Q ,SBA0O2 1XSFAR 0860AK,IB8OC1lote :機(jī) C;VIIIDOIS?yjtcM2coBBand. cobE7322932273229322932E9322?3229322932E932293229322?J20S00 B831Z?9083 0ED90005 BGL 000 00AH 36009 G706000O1ASG 脳PF 3B0010 3C0E020O 0014 360日15 FF1E0Q0S 001 90Q01A
40、 DO1A0QBdlD 360QJE 2D0GRGB0檢測(cè)點(diǎn) 11.1( 第216 頁 )寫出下面每條指令執(zhí)行后,ZF、PF、SF、等標(biāo)志位的值。sub al,alal=0hZF=1PF=1SF=0mov al,1al=1h;mov指令不改變標(biāo)志位ZF=1PF=1SF=0push axax=1h;push指令不改變標(biāo)志位ZF=1PF=1SF=0pop bxbx=1h;pop指令不改變標(biāo)志位ZF=1PF=1SF=0add al,blal=2h;al =00000010bZF=0PF=0SF=0add al,10al=12h;al =00001010bZF=0PF=1SF=0mul alax=14
41、4h;ax =10010000bZF=0PF=1SF=0alCFOFSFZFPFsub al, al0h0000 0000b00011mov al,10h10h0010 0000b00011add al,90ha0h1010 0000b00101mov al,80h80h1000 0000b00101add al,80h0h0000 0000b11011mov al,0fch0fch1111 1100b11011add al,05h1h0000 0001b10000mov al,7dh7dh1111 1101b10000add al,0bh88h1000 1000b01101檢測(cè)點(diǎn) 11.2(
42、 第219 頁 )寫出下面每條指令執(zhí)行后,ZF、 PF、SF、CF、OF 等標(biāo)志位的值。檢測(cè)點(diǎn)涉及的相關(guān)容:CF是flag的第0位,進(jìn)位標(biāo)志位,記錄無符號(hào)運(yùn)算結(jié)果是否有進(jìn)/借位,結(jié)果有進(jìn)/借位時(shí),SF=1OF 是 flag 的第 11 位,溢出標(biāo)志位,記錄有符號(hào)運(yùn)算結(jié)果是否溢出,結(jié)果溢出時(shí),OF=1正數(shù)相加超出 127 ,負(fù)數(shù)相加超出 -128 ,兩種情況 OF 均置為1SF是flag的第7位,符號(hào)標(biāo)志位,記錄有符號(hào)運(yùn)算結(jié)果是否為負(fù)數(shù),結(jié)果為負(fù)數(shù)時(shí),SF=1PF=1ZF 是 flag 的第6位,零標(biāo)志位,記錄指令執(zhí)行后結(jié)果是否為0,結(jié)果為 0時(shí), ZF=1PF是flag的第2位,奇偶標(biāo)志位,記
43、錄指令執(zhí)行后結(jié)果二進(jìn)制中1的個(gè)數(shù)是否為偶數(shù),結(jié)果為偶數(shù)時(shí),add 、sub 、mul 、div 、inc 、or、and 等運(yùn)算指令影響標(biāo)志寄存器mov 、push 、pop 等傳送指令對(duì)標(biāo)志寄存器沒影響。檢測(cè)點(diǎn)11.3(第229頁)(1)補(bǔ)全下面的程序,統(tǒng)計(jì)F000:0處32個(gè)字節(jié)中,大小在32,128的數(shù)據(jù)個(gè)數(shù)。mov ax,OfOOOhmov ds, axmov bx,0;ds: bx指向第一個(gè)字節(jié)mov dx,0;初始化累加器mov cx,32s: mov al,bxcmp al,32;和32進(jìn)行比較jb s0;如果低于al轉(zhuǎn)到s0,繼續(xù)循環(huán)cmp al,128;和128進(jìn)行比較ja
44、s0;如果高于al轉(zhuǎn)到s0,繼續(xù)循環(huán)inc dxs0: inc bxloop s(2)補(bǔ)全下面的程序,統(tǒng)計(jì) F000:0處32個(gè)字節(jié)中,大小在(32,128)的數(shù)據(jù)個(gè)數(shù)。mov ax,OfOOOhmov ds,axmov bx,0;ds:bx指向第一個(gè)字節(jié)mov dx,0;初始化累加器mov cx,32mov al,bxcmp al,32;和32進(jìn)行比較jna s0;如果不咼于al轉(zhuǎn)到s0,繼續(xù)循環(huán)cmp al,128;和128進(jìn)行比較jnb s0;如果不低于al轉(zhuǎn)到s0,繼續(xù)循環(huán)inc dxsO: inc bxloop s32,128是閉區(qū)間,包括兩端點(diǎn)的值(32,128)是開區(qū)間,不包括兩
45、端點(diǎn)的值檢測(cè)點(diǎn)11.4(第233頁)F面指令執(zhí)行后,(ax)= 45h mov ax,0push axpopf;將psw清零mov ax,0fff0Hadd ax,0010hpushf;將psw入棧,psw的值0000000 01000101,這里已經(jīng)講學(xué)過的標(biāo)志位都標(biāo)識(shí)出來了,沒學(xué)過的全部都當(dāng)作0分析了 ,結(jié)果應(yīng)該也是對(duì)的pop ax;出棧 ax 的值就是 00000000 01000101and al,11000101B;且運(yùn)算 al:01000101and ah,00001000B;且運(yùn)算 al:00000000分析:這里面主要還是講解pushf和popf,就是psw的值入棧,psw16
46、個(gè)字節(jié),我們學(xué)習(xí)了 6個(gè),但是df在本程序里面一直沒有賦值,所以是0,其他的標(biāo)志位沒有學(xué)習(xí),在下面的且運(yùn)算的時(shí)候全部歸零了,所以最后的結(jié)果就是0045H,也就是最后我分析的0000000001000101OFDEiF【卜StZFXAFPFXCFiLd l4j LnnAHSt Overflow増忙 h |njl)irccti(n允許中 Wilnterrupt1陷目FI ra p Ha*;彳孑號(hào)標(biāo)比Sig”卜Ll昇零標(biāo)息Kero Un幌 WjntEAhiilisry偶標(biāo)總Punt歲Fl畔itt/fHftC arry FMg檢測(cè)點(diǎn)12.1(第238頁)(1)用debug查看存,情況如下:0000:0
47、000 68 10 A7 00 8B 01 70 00-16 00 9D 038B 01 70 00則3號(hào)中斷源對(duì)應(yīng)的中斷處理程序入口的偏移地址的存單位的地址為:0070:018b存儲(chǔ)N號(hào)中斷源對(duì)應(yīng)的中斷處理程序入口的偏移地址的存單元的地址為:4N存儲(chǔ)N號(hào)中斷源對(duì)應(yīng)的中斷處理程序入口的段地址的存單元的地址為:4N+2檢測(cè)點(diǎn)涉及相關(guān)容: 一個(gè)表項(xiàng)存放一個(gè)中斷向量, 也就是一個(gè)中斷處理程序的入口地址, 這個(gè)入口地址包括段地址和偏移地址,一個(gè)表項(xiàng)占兩個(gè)字,高地址存放段地址,低地址存放偏移地址檢測(cè)點(diǎn) 13.1( 第257 頁 )(1)7ch 中斷例程如下:lp: push bpmov bp, spde
48、c cxjcxz lpretadd bp+2,bxlpret: pop bpiret(1) 在上面的容中,我們用 7ch 中斷例程實(shí)現(xiàn) loop 的功能,則上面的 7ch 中斷例程所能進(jìn)行的最大轉(zhuǎn)移位移是多少?最大位移是 FFFFH, 即棧底與棧頂之間的位移為最大轉(zhuǎn)移位移可以轉(zhuǎn)移的圍是 -3276832767用7ch中斷例程完成jmp near ptr s指令功能,用bx向中斷例程傳送轉(zhuǎn)移位移。應(yīng)用舉例:在屏幕的第 12行,顯示 data 段中以 0結(jié)尾的字符串。assume cs:codedata segmentdb conversation,0data endscode segmentst
49、art:mov ax, datamov ds, axmov si,0mov ax,0b800hmov es, axmov di,12*160s: cmp byte ptr si,0je okmov al,simov es:di,alinc siadd di,2mov bx ,offset s-offset okint 7ch ok: mov ax,4c00hint 21hcode endsend startjmp near ptr s 指令的功能為: (ip)=(ip)+16 位移,實(shí)現(xiàn)段近轉(zhuǎn)移assume cs:codecode segmentstart:mov ax, csmov ds, axmov si, offset do0;設(shè)置 ds:si 指向源地址mov ax,0mov es, axmov di,200h; 設(shè)置 es:di 指向目標(biāo)地址mov cx, offset do0end-offset do0;設(shè)置 cx 為傳輸長度cld;設(shè)置傳輸方向?yàn)檎齬ep movsbmov ax,0mov es ,axmov word ptr es:7ch*4,200hmov word ptr es:7c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 修理廠和供貨商合同范本
- 公寓開荒保潔合同范本
- 加裝電梯加盟合同范本
- canying勞動(dòng)合同范本
- 剝離工程合同范本
- 保理 保證合同范本
- 養(yǎng)鵝訂單合同范本
- 中介居間服務(wù)合同范本
- 催收咨詢服務(wù)合同范例
- 加工制作維修合同范例
- 2022-2023學(xué)年江蘇省揚(yáng)州市普通高校高職單招綜合素質(zhì)測(cè)試題(含答案)
- 小學(xué)科學(xué)教科版三年級(jí)下冊(cè)全冊(cè)課課練習(xí)題(2023春)(附參考答案)
- DB37T 4242-2020水利工程建設(shè)項(xiàng)目代建實(shí)施規(guī)程
- 學(xué)生班級(jí)衛(wèi)生值日表模板下載
- 《是誰覺醒了中國》
- 勞務(wù)派遣服務(wù)方案與服務(wù)流程圖
- 初一經(jīng)典、勵(lì)志主題班會(huì)PPT(共63張PPT)
- 兒童血尿的診斷思路
- 2022立足崗位秉承工匠精神PPT課件模板
- 第六章-政策過程及其理論模型-《公共政策學(xué)》課件
- 《行政組織學(xué)通論》配套教學(xué)課件
評(píng)論
0/150
提交評(píng)論