Hiển thị các bài đăng có nhãn Tài Nguyên. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Tài Nguyên. Hiển thị tất cả bài đăng

Thứ Sáu, 8 tháng 1, 2010

Lap trinh DEBUG


PHAn II.2. Nhóm lnh s hc (là nhóm lnh có nh hưởng đến c).
Các lnh s hack boa gem bn phép tính s hc cơ bn là cng, tr , nhân, chia và đo du toán hng.

ADD/SUB Dng tng quát ca các lnh cng (add) và tr (subtract) là:
ADD đích, ngun
SUB đích, ngun
Mô t: ADD: Đích  Đích + Ngun¬
SUB : Đích  Đích -Ngun¬
trong đó các toán hng đích, ngun có th tìm được theo các đa ch khác nhau, nhưng phi cha d liu có cùng đ dài và không được phép đng thi là hai ô nh và cũng không được là thanh ghi đon.
Bng 4-4 tóm tt các loi khác nhau ca các toán hng đích và ngun dùng trong các lnh cng và tr:
Bng 4-4. các dng toán hng trong lnh ADD/SUB:

Đích (nơi đến) Ngun (gc)
Thanh ghi Thanh ghi
Thanh ghi B nh
B nh Thanh ghi
B nh Tc thi (hng s)
Thanh ghi Tc thi(hng s)

Ví d 1:
ADD AX, BX ;  AX+BX¬AX
ADD AL, 74H ;  AX+ 74H¬AX
SUB CL, AL  CL - AL¬; CL
SUB AX, 0405H  AX - 0405H.¬; AX
Ví d 2: Viết đon chương trình ngôn ng assembly đ cng 5H vi 3H, dùng các thanh ghi AL, BL.
MOV AL, 05H  05H¬; AL
MOV BL, 03H  03H¬; BL
ADD AL, BL  05H+03H =08H¬; AL
MOV 100H, AL ; Di chuyn kết qu t AL vào v trí nh DS:100H.

MUL/DIV Dng tng quát ca lnh nhân (multiply, MUL) và chia (divide, DIV) là:
MUL s nhân ngun
DIV s chia ngun
trong đó s nhân ngun (toán hng gc) có th tìm được theo các chế đ đa ch khác nhau. Khi dùng lnh nhân, s được nhân phi được chuyn vào thanh ghi AX hoc AL. Còn s nhân thì có th chuyn vào thanh ghi khác bt kỳ hoc mt đa ch nh.
Ví d 2:
MUL BX ; s nhân nm trong thanh ghi BX
MUL MEM1 ; s nhân nm trong đa ch nh mang nhãn MEM1
Khi hai byte nhân vi nhau thì kết qu được gi lưu vào thanh ghi AX.
Ví d 3. Viết đon chương trình nhân 5H vi 3H, dùng thanh ghi CL.
MOV AL, 05H  05H (s được nhân)¬; AL
MOV CL, 03H  03H (s nhân)¬; CL
MUL CL  0FH (kết qu)¬; AL
MOV MEM1, AL ; chuyn kết qu (0FH)
; t AL vào v trí nh có nhãn MEM1.
Khi nhân hai li (16 bit) vi nhau thì s được nhân phi chuyn vào thanh ghi AX, còn s nhân có th trong mởột thanh ghi khác bt kỳ hoc trong v trí nh 16 bite. kết qu s là con s 32 bit (hoc hai li) và được cha trong các thanh ghi DX và AX. Li có trng s ln s trong thanh ghi DX và li có trng s nh sỏẽ trong thanh ghi AX.
Ví d 4. Viết đon chương trình đ nhân 3A62H vi 2B14H.
MOV AX, 3A62H  ;3A62H= AX
MOV CX, 2B14H  ;2B14H= CX
MUL CX  tích = 289C ;63A8H=DXAX
Các lnh chia, v cơ bn, cũng ging như các lnh nhân. Trong phép chia c byte, s chia là mt byte có th ểở trong mt thanh ghi hoc mt v trí nh. S b chia phi là mt s không du 16 bit cha trong thanh ghi AX. Kết qu thương s s trong thanh ghi AL, còn s dư thì trong thanh ghi AH. Đi vi phépchia c li thì s chia 16 bit có th đt trong thanh ghi hoc mt v trí nh. Còn s b chia phi là mt s không du 32 bit được đt trong các thanh ghi DX và AX. Thanh ghi DX s gi li có trng s cao, thanh ghi AX s gi li có trng s thp. Kết qu thương đt trong thanh ghi AX, còn s dư đt trong thanh ghi DX.
Ví d 5: Viết đon chương trình đ chia 6H cho 3H, dùng thanh ghi CL. MOV AX, 0006H  6H¬; AX
MOV CL, 03H  ;3H= CL
DIV CL  00H (s dư), 02H (thương s)= AHAL
Chú ý: 6H được đưa vào thành 0006H đ lp đy toàn b thanh ghi AX. Như vy các byte trng s cao ca AX s b xoá đ tránh b li.
Ví d 6: Viết đon chương trình đ chia 1A034H cho 1002H, dùng thanh ghi BX
MOV AX, 0A034H  0A034H¬; AX
MOV DX, 0001H  0001H¬; DX
MOV BX, 1002H  1002H¬; BX
DIV BX  00H (s dư)1AH (thương s)¬; DXAX
INC/DEC Đây là lnh tăng (increment) và gim (decrement). Lnh tăng s cng thêm mt đơn v vào toán hng, còn lnh gim s tr mt đơn v vào toán hng. Các lnh này rt cn đi vi thao tác đếm. Dng tng quát ca các lnh INC và DEC là:
INC đích  Đích +1¬Mô t: Đích
DEC đích  Đích -1¬Mô t: Đích
Toán hng đích có th là mt thanh ghi hoc mt v trí nh bt kỳ, có th là 1 li 16 bit hoc 1 byte; có th tìm đểược theo các chế đ đa ch khác nhau.
Chú ý:
- Trong lnh tăng, nếu Đích = FFH (hoc FFFFH) thì Đích + 1 = 00H (hoc 0000H) mà không nh hưởng đến c nh. Lnh này cho kết qu tương đương như lnh ADD Đích, 1 nhưng chy nhanh hơn.
- Trong lnh gim, nếu đích là 00H (hoc 0000H) thì Đích -1 = FFH (hoc FFFFH) mà không nh hưởng đến c nh CF. Lnh này cho kết qu tương đương vi lnh SUB Đích, 1 nhưng chy nhanh hơn.
NEG- Negative a Operand (ly bù 2 ca mt toán hng hay đo du toán hng).
Viết lnh: NEG Đích
Ví d:
NEG AH  0 - (AH)¬; AH
NEG BYTE PTR[BX] ; ly bù 2 ca ô nh do BX ch ra trong DS


Thứ Năm, 7 tháng 1, 2010

Lap trinh DEBUG

Phần 1: Xác định các chế độ định vị của các câu lệnh
1. Xác định kiểu định vị nguồn và đích trong các lệnh sau:
a. MOV AX,BX ; b. MOV AH,7 ; c. MOV [DI],AL ; d. MOV AX,[BP] ; e. MOV AL,[SI+6]
Gỉai:
a. MOV AX,BX ; định vị thanh ghi
b. MOV AH,7 ; định vị lấy ngay
c. MOV [DI],AL ; định vị gián tiếp thanh ghi
d. MOV AX,[BP] ; định vị gián tiếp thanh ghi
e. MOV AL,[SI+6] ; định vị chỉ số
2. Gỉa sử AX = 0500h ; BX = 1000h ; SI = 1500h ; DI = 2000h ; [DS] = 0100h ; [DS] = 0150h ; [DS] = 0200h ; [DS] = 0250h ; [DS] = 0300h và BETA là biến từ nằm ở địa chỉ ô 1000h. Trong các lệnh sau đây, nếu hợp lệ (nếu không hợp lệ, giải thích tại sao), hãy cho biết địa chỉ ô của các tác tố nguồn hoặc thanh ghi và kết quả lưu trong tác tố đích.
a. MOV DL,SI ; b. MOV DI,[DI] ; c. ADD AX,[SI] ; d. SUB BX,[DI] ; e. LEA BX,BETA[BX] ; f. ADD [SI],[DI] ; g. ADD BH,[BL] ; h. ADD AH,[SI] ; i. MOV AX,[BX+DI+BETA]
Gỉai:
a. MOV DL,SI ; DL <- 1500h
b. MOV DI,[DI] ; DI <- 0200h
c. ADD AX,[SI] ; AX <- 0650h
d. SUB BX,[DI] ; BX <- 0800h
e. LEA BX,BETA[BX] ; BX <- 0100h
f. ADD [SI],[DI] ; không hợp lệ (vì 2 tác tố đều là vùng nhớ)
g. ADD BH,[BL] ; BH <- 10h
h. ADD AH,[SI] ; AH <- 0155h
i. MOV AX,[BX+DI+BETA] ; AX <- 3100h
3. Xác định chế độ địa chỉ và tính địa chỉ vật lý của các câu lệnh sau:
CS = DCBAh ; SS = EA98h ; BP = SP = 0957h
DS = ES = DDE8h ; BX = 1234h ; SI = DI = 3412h
a. MOV [1234h],AL
c. MOV [BP+15],BLd. MOV BH,[DI+10]
e. MOV AL,[BP+DI] + 110b
Giaỉ:a. MOV [1234h],AL ; định vị trực tiếp
địa chỉ tuyết đối = DS * 16 + 1234h = DF0B4h
b. MOV BL,[BX+DI] ; định vị chỉ số cơ sở
địa chỉ tuyết đối = DS * 16 + BX + DI = E24C6h
c. MOV [BP+15],BL ; định vị cơ sở
địa chỉ tuyết đối = DS * 16 + BP + Fh = DE7F6h
d. MOV BH,[DI+10] ; định vị chỉ số
địa chỉ tuyết đối = DS * 16 + DI + Ah = E129Ch
e. MOV AL,[BP+DI]+110b ; định vị chỉ số cơ sở
địa chỉ tuyết đối = DS * 16 + BP + DI + 6h = E1BEFh
________________________________________
Phần 2: Xác định cờ
1. Cho biết nội dung của tác tố đích và trị cờ CF, SF, ZF, PF và OF sau khi thực hiện các lệnh sau:
a. ADD AX,BX ; với AX = 7FFFh và BX = 1
b. SUB AL,BL ; với AL = 1 và BL = FFh
c. DEC AL ; với AL = 0
d. NEG AL ; với AL = 7Fh
e. XCHG AX,BX ; với AX = 1ABCh và BX = 712Ah
f. ADD AL,BL ; với AL = 80h và BL = FFh
g. SUB AX,BX ; với AX = 0 và BX = 8000h
. NEG AX ; với AX = 1
Gỉai:
a. ADD AX,BX ; với AX = 7FFFh và BX = 1
AX = 0111 1111 1111 1111b
BX = 0000 0000 0000 0001b
- Cờ CF (cờ gởi, = 1 khi có tràn ngược lại = 0 khi không tràn, đối với số nguyên không dấu)
Đối với lệnh ADD AX,BX thì CF = 0 vì không có tràn
- Cờ SF (cờ dấu, = 1 khi kết quả âm (bit MSB là 1) ngược lại = 0 khi kết quả dương (bit MSB là 0))
Đối với lệnh ADD AX,BX thì SF = 1 vì kết quả là 1000 0000 0000 0000b (bit MSB là 1)
 Cờ ZF (cờ không, = 1 khi kết quả là 0, ngược lại = 0 khi kết quả khác 0)
Đối với lệnh ADD AX,BX thì ZF = 0 vì kết quả là một số khác 0
- Cờ PF (cờ chẵn lẽ, = 1 khi tổng số bit 1 là số chẵn, ngược lại = 0 khi tổng số bit 1 là số lẻ))
Đối với lệnh ADD AX,BX thì PF = 0 vì kết quả 1000 0000 0000 0000b có tổng số bit 1 là 1 (là số lẻ)
- Cờ OF (cờ tràn, = 1 khi cộng/trừ hai số nguyên cùng dấu mà kết quả cho ra số nguyên khác dấu, ngược lại = 0)
Đối với lệnh ADD AX,BX thì OF = 1 vì kết quả 1000 0000 0000 0000b khác dấu
Các câu khác các anh chị làm tương tự nhưng nhớ là trước khi xác định cờ thì phải đổi ra số nhị phân sau đó thực hiện phép toán rồi mới xác định cờ.
2. Cho biết kết quả sau khi thực hiện lệnh ADD AX,BX và trạng thái tràn (có dấu hoặc không dấu) có xảy ra không với:
a. AX = 512h và BX = 4185h
b. AX = FE12h và BX = 1ACBh
c. AX = E1E4h và BX = DAB3h
d. AX = 7132h và BX = 7000h
e. AX = 6389h và BX = 1176h
Gỉai:
a. ADD AX,BX ; AX = 512h và BX = 4185h
Đối với bài này các anh chị làm tương tự như trên nhưng người ta chỉ hỏi 2 cờ CF và OF thôi.
3. Cho biết kết quả sau khi thực hiện lệnh SUB AX,BX và trạng thái tràn (có dấu hoặc không dấu) có xảy ra không với:
a. AX = 2143h và BX = 1986h
b. AX = 81FEh và BX = 1986h
c. AX = 19BCh và BX = 81FEh
d. AX = 0002h và BX = FE0Fh
e. AX = 8BCDh và BX = 71ABh
Gỉai:
SUB AX,BX ; AX = 2143h và BX = 1986h
Đối với bài này các anh chị làm tương tự như trên nhưng người ta chỉ hỏi 2 cờ CF và OF thôi.


Chủ Nhật, 27 tháng 12, 2009

Trang websied dung lượng lớn

-Bạn hãy dăng ký(bằng yahoo cua ban) và sử dụng miễn phí với 5GB
-Bạn có thể upload thoải mãi những gì bạn muốn
Tại đây
- Xin lưu ý với mọi người phải dowload  thêm phần mềm về máy bạn để sử dụng chương trình trên.

Chúc bạn thành công!
vancongck