修改Mysql資料庫的資料儲存位置(二)
阿新 • • 發佈:2020-11-25
1. 實驗任務1
使用任意文字編輯器,錄入彙編源程式task1.asm。
assume cs:code, ds:data data segment db 'Nuist' db 5 dup(2) data ends code segment start: mov ax, data mov ds, ax mov ax, 0b800H mov es, ax mov cx, 5 mov si, 0 mov di, 0f00h s: mov al, [si] and al, 0dfh mov es:[di], al mov al, [5+si] mov es:[di+1], al inc si add di, 2 loop s mov ah, 4ch int 21h code ends end start
閱讀源程式,從理論上分析原始碼的功能,尤其是line15-25,迴圈實現的功能是什麼,逐行理解每條指 令的功能。
使用masm、link對task1.asm進行彙編、連結,得到可執行檔案task1.exe,執行並觀 察結果。
使用debug工具對程式進行除錯,執行到程式返回前,即line27之前,觀察結果。
修改line4裡5個位元組單元的值,重新彙編、連結、執行,觀察結果。
db 5 dup(2) --> 改成: db 2,3,4,5,6
基於觀察,分析、猜測這裡的數值作用是什麼。
(1)首先向資料段的前10個位元組輸入資料,其中db 5 dup(2)表示5個重複的2(位元組資料)。向附加段暫存器es輸送視訊記憶體地址(在記憶體地址結構中,B8000H~BFFFFH共32KB的空間,為80x25彩色字元模式的顯示緩衝區。向這個地址空間寫入資料,寫入的內容將立即出現在顯示器)。執行5次迴圈,迴圈的內容是:將資料段中的字元資料送往視訊記憶體地址中,並執行add al,odfh(將小寫轉化為大寫),mov al, [5+si],mov es:[di+1], al(為設定顯示顏色的操作,將2送往視訊記憶體中儲存對應字元地址的下一個地址,實現控制顏色)。
(2)db 2,3,4,5,6即設定顏色的值為不同顏色。
2. 實驗任務2
已知資料段data中定義位元組資料如下:
data segments db 23, 50, 66, 71, 35 data ends
編寫程式,在螢幕上以十進位制整數形式列印輸出這5個兩位數。
assume cs:code, ds:data data segment db 23,50,66,71,35 data ends code segment start: mov ax,data mov ds,ax mov di,0 mov cx,5 s: mov ah,0 //*將位元組資料存入ax暫存器中,因為ax儲存2個位元組,所以 mov al,ds:[di] ah中存0*// mov bl,10 div bl //ax中資料除以10,餘數存在ah,商存在al mov ds:[di+10],al //將商的內容存入資料段中,(取可用的記憶體單元即可) mov ds:[di+11],ah //將商的內容存入資料段中,(取可用的記憶體單元即可) mov ah,2 //* mov dl,ds:[10+di] 顯示商 add dl,30h int 21h *// mov ah,2 //* mov dl,ds:[11+di] 顯示餘數 add dl,30h int 21h *// mov ah,2 mov dl," " int 21h inc di //di自增1,用於讀取下一位置處的位元組資料 loop s mov ax,4c00h int 21h code ends end start