First chapter Detection point 1.11) (8KB = 8 * 1024x768 = 2^13) 2) 0 10233) 8*1024 (1 byte = 8 bit, computer in bytes) 4) 1024^3 1024^2 1024 5) 2^6 1 2^4 2^2 (KB = 2^10 Mb = 2^20 Gb = 2^30) 6) 1 1 2 2 47) 512 256 (8086 Register is a 16-bit register, can read two bytes at a time, 80386 is 32-bit register) 8) binary
Chapter II Detection point 2.11) AX = F4a3hax = 31a3hax = 3123hAX = 6246hBX = 826ChCX = 6246hAX = 826ChAX = 04d8hax = 0482hAX = 6c82hax = d882ha X = D888hax = D810hax = 6246h2) mov ax,2add ax,axadd ax,axadd ax,ax Detection point 2.21) 00010h 1000fh (0001h+0000h 0001h+ffffh) 2) 100 1h 2000h (the range of offset address is 0000-ffff, memory unit = Segment Address *16+ offset address, when the offset address is minimum, the segment address is maximum, the offset address is maximum, the segment address is the smallest) detection point 2.34 modification IP, the last IP is 0
Chapter III Detection Point 3.11) mov Ax,1mov ds,axmov ax,[1000] ax = 2662hmov bx,[1001] bx = E626hmov ax,bx ax = E626hmov ax,[0000] Ax = 266 2hmov bx,[0002] bx = d6e6hadd ax,bx ax = fd48hadd ax,[0004] ax = 2c14hmov ax,0 ax = 0000hmov al,[0002] ax = 00e6h mov bx,0 bx = 0000hmov bl,[000c] bx = 0026hadd al,bl AX = 000ch2) CS = 2000h,ip = 0,ds = 1000hmov ax,66 22h ax = 6622hjmp 0ff0:0100h CS = 0ff0 IP = 0100hmov ax,2000h ax = 2000hmov Ds,ax ds = 2000hmov ax,[0008] AX = C389hmov ax,[0002] Ax = Ea66hmov ax,6622h ax = 6622h data and program expression there is no difference, only with the location of the storage, the existence of data segment is the data, there is a program in the program segment is the detection point 3.21) mov ax, 2000hmov Ss,axmov sp,10h2) mov Ax,1000hmov Ss,axmov sp,0
Sixth detection point 6.11) mov cs:[bx],ax2) cs26 or 1ahpop CS:[BX]
Nineth detection point 9.11) DB 8 dup (0) 2) offset startcs3) CS = 0006h IP = 00BE detection point 9.2mov cl,[bx]mov ch,0jcxz okinc bx detection point 9.3inc CX (because loo P S is performed by comparing CX subtraction with 0 first)
Tenth detection Point 10.110000000 detection point 10.2ax = 3 detection Point 10.3ax = 1006 detection Point 10.4ax = 9 (call ax will be ippush to the stack, that is, push 3) detection point 10.51) ax = 0001 bx = 0000
11th Inspection Point 11.11 1 01 1 0 1 1 01 1 00 0 00 1 00 1 0 Detection Point 11.20 0 0 1 10 0 0 1 10 0 1 0 00 0 1 0 01 1 0 1 1
1 1 0) 1 1
1 0 0) 0 0
1 0 0) 0 0
0 1 1) 0 1
Detection Point 11.3
1)
JNA S0
JNA S0
2)
JB S0
JB S0
Detection Point 11.4
Ax = 0871h
Detection point 12.11) 039d:00162) 0000:[4n]0000:[4n+2]
Detection point 13.1assume cs:code,ds:data data segment db ' conversation ', 0 data ends code segmentstart: mov Ax,cs mov ds,ax mov si,offset show mov ax,0 mov es,ax mov di,200h mov cx,offset Showend-offset Show CLD rep movsb mov ax,0 mov es,ax mov word ptr es:[7ch*4],200h mov Word ptr es:[7ch*4+2],0 mov ax,data mov ds,ax mov si,0 mov ax,0b800h mov es,ax mov di,12 *160 S: cmp byte ptr [si],0 je ok mov al,[si] mov es:[di],al mov al,2 mov es:[di+1] , Al inc si add di,2 mov bx,offset s-offset ok int 7ch OK: mov ax,4c00h int 21hshow: push BP mov bp,sp add [bp+2],bx pop bp iretshowend:nop code ends End Start detection point 13.21) error, unable to write program to BIOS 2) error, 19h interrupt before operating system, and DOS controlled by operating system after operating system
Detection point 14.11) mov al,2out 70h,alin al,71h2) mov al,0out 71h,almov al,2in 70h,al detection Point 14.2 without considering overflow case: mov ax,__mov BX,AXSHL Bx,1mov CL,3SHL Ax,cladd AX,BX
15th Detection Point 15.11) Pushfcall DWORD ptr ds:[0]2) set a new INT9 interrupt entry address in the interrupt vector table without interruption, that is, Climov word ptr es:[9*4],offset Int9mov word PTR Es:[9*4+2],cssti restores the source address of the interrupt vector table Int9 in the same vein: Clipush ds:[0]pop es:[9*4]push ds:[2]pop es:[9*4+2]sti
16th detection Point 16.1A[SI]BB1 detection point 16.2mov Ax,datamov es,ax
17th detection Point 17.1IF = 1 DI (disable interupt) if = 0 EI (enable interupt) when the execution of the int16 interrupt is read out from the buffer, if the buffer is empty, then int16 should be able to respond to INT9 interrupts, So if it is not necessarily 1
Assembly Language Reference Answer