Linux下的Tomcat安裝
一、實驗結論
1. 實驗任務1
給出ex1.asm原始碼
;ex1.asm
assume cs:code
code segment
mov ax, 0b810h
mov ds, ax
mov byte ptr ds:[0], 1
mov byte ptr ds:[1], 1
mov byte ptr ds:[2], 2
mov byte ptr ds:[3], 2
mov byte ptr ds:[4], 3
mov byte ptr ds:[5], 3
mov byte ptr ds:[6], 4
mov byte ptr ds:[7], 4
mov ah, 4ch
int 21h
code ends
end
給出使用masm、link工具彙編、連結的命令列及執行結果截圖
給出使用debug除錯的截圖:
①檢視PSP的命令及截圖
ds=075a,則PSP地址為ds:0
②結合可執行檔案載入後暫存器CX的值,使用u命令精確反彙編截圖
cx=0031h,則程式碼範圍為0 30
③使用g命令執行到line16退出執行之前,操作截圖
根據上一步知line16的記憶體地址為076a:002d
2. 實驗任務2
給出ex2.asm原始碼
; ex2.asm
assume cs:code
code segment
mov ax, 0b810h
mov ds, ax
mov bx, 0
mov ax, 101H
mov cx, 8
s: mov [bx], ax
add bx, 2
add ax, 101H
loop s
mov ah, 4ch
int 21h
code ends
end
給出使用masm、link工具彙編、連結的命令列及執行結果截圖
給出使用debug除錯的截圖 包括:
①結合可執行檔案載入後暫存器CX的值,使用u命令精確反彙編截圖
②靈活使用t命令/p命令、g命令,對ex2.exe進行除錯的截圖
把ex2.asm中line9 mov cx, 4改成mov cx, 8,儲存後重新彙編、連結、執行並觀察結果
回答問題:結合上述實驗和觀察,分析、對比ex2.asm和ex1.asm,它們實現的是否是相同的功能和效果?在具體實現上有什麼不同?
答:它們是相同的功能和效果,即向視訊記憶體中寫入資料,在程式執行時資料顯示在螢幕上;
具體實現上的不同:ex1重複執行相同功能資料不同的程式碼,ex2通過loop指令減少了重複程式碼。
3. 實驗任務3
給出原始碼
assume cs:code
code segment
mov ax,0b800h
mov ds,ax
mov bx,07b8h
mov cx,000fh
s: mov [bx],0437h
inc bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
給出執行結果截圖
把填充的字資料,從0237H 改成0239H,再次儲存後,彙編、連結、執行,觀察結果。
把填充的字資料,從0237H 改成0437H,再次儲存後,彙編、連結、執行,觀察結果。
猜測並分析,這個字資料中高位位元組裡存放的是什麼資訊,低位位元組裡存放的是什麼資訊。
答:0237->0239:顏色不變,資料改變;0237->0437:顏色改變,資料不變;由此得高位位元組裡存放顏色資訊,低位位元組裡存放資料資訊。
4. 實驗任務4
編寫完整彙編源程式,實現向記憶體0:200~0:23F依次傳送資料0~63(3FH)。
assume cs:code
code segment
mov ax,20h
mov ds,ax
mov cx,40h
mov bx,00h
s: mov [bx],bx
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
靈活使用debug的t命令、g命令、p命令除錯。在程式退出前,用d命令檢視0:200~0:23F,確認是否將0~3F傳送至此段記憶體區域。
使用d命令檢視記憶體,可見0~3F已傳送至此段記憶體區域
5. 實驗任務5
填空以後的原始碼
assume cs:code
code segment
mov ax,cs
mov ds,ax
mov ax,0020h
mov es,ax
mov bx,0
mov cx,17h
s: mov al,[bx]
mov es:[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
mov ax,4c00前共有10行程式碼,先設定cx為31即1fh,再根據debug中反彙編後檢視mov ax,4c00程式碼的地址,修改cx的值
根據上圖,將cx改為17h後再彙編、連結、執行、debug
用d命令檢視0:200之後的若干位元組