Trong bài em thấy 1 câu lệnh không liên quan lắm và em cũng không hiểu nó lắm! Mong ai rành cái này chỉ em với…
Đề bài:
Viết chương trình chuyển mảng dữ liệu từ vùng nhớ DISPLAY_VIDEO (địa chỉ 700h) có địa chỉ mảng là DISPLAY_BASE (địa chỉ B800h) tới vùng dữ liệu BUFFER_SAVE có địa chỉ mảng do DS quản lý. Biết rằng nhớ DISPLAY_VIDEO chứa 1 KB ký tự(mã hóa ASCII).
--------------------- đây là code ---------------------
DISPLA Y_BASE EQU 0B800h
DISPLAY_ VIDEO EQU 700h
Code_Seg SEGMENT;mở mảng lệnh
ASSUME CS:Code_Seg, DS:Data_Seg
ORG 100h; tạo file dạng com
ThuTucChinh PROC ;tạo thủ tục chính
CALL Chuyen_Mang
ThuTucChinh EndP; kết thúc
;-----------------------------
Chuyen_Mang Proc Near
PUSH AX
PUSH BX
PUSH CX
MOV SI, DISPLAY_VIDEO
LEA DI, BUFFER_SAVE
MOV AX, DISPLAY_BASE
MOV DS, AX
MOV AX, CS ; câu này em ko hiểu … tại sao lại chuyển dữ liệu của cs vào ax
MOV ES, AX
CLD ;xóa cờ DF:DF = 0
MOV CX, 1024; BỘ ĐẾM 1024
LOOP_1Kb:
MOVSB
LOOP LOOP_1Kb
POP CX
POP BX
POP AX
RET
Chuyen_Mang ENDP
Code_Seg ENDS
Data_Seg SEGMENT
BUFFER_SAVE DB 1024 DUP(?)
Data_Seg EndS
;— kết thúc code
Mong mọi người ai giúp đỡ ~~~~~~
MOV AX, CS ; câu này em ko hiểu … tại sao lại chuyển dữ liệu của cs vào ax
chính xác là cái này !!