-
22-12-2009, 05:05 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Không có thanh ghi eal bạn à, chỉ có thanh ghi eax, 16 bit thấp của nó là ax, 8 bit cao của AX là AH, 8 bit thấp của AX là AL, mục đích: để tương thích ngược với các chương trình cũ.
Mã:eax ------------------ ax ---------- -AH-|-AL-
View more random threads:
- Giao tiếp giữa các quá trình - Help me
- Dịch ngược code file dll như thế nào?
- Cách đọc ghi file nhị phân trong MFC
- Làm thế nào để ẩn 1 thư mục trong lập trình VC++?
- Hỏi về VC++ Windows Forms Application
- cách sử dụng C++2005 để lập trình như thế nào?
- Lỗi con trỏ p trong Class Vector, giúp em với ạ.
- Xử lý lỗi error spawning cmd.exe trong VC++ 2008?
- Ký pháp Ba lan
- Lỗi thiếu MSVCP80D.dll
-
22-12-2009, 05:08 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
dl hay là edx? , lodsb là load 1 byte 1 lần thôi, mảng a mỗi phần tử 4 byte lận
-
22-12-2009, 07:47 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thắc mắc thanh ghi eax,edx so với thanh ghi ax
Mình có bài tập tìm phần tử max trong 1 mảng giải bằng dos 16bit như thế này
Mã:.Model small.Stack 100H.Data ; source stringlist DB 1,4,0,9,7,2,4,6,2,5 .codemain proc ; initilize the ds and es registers mov ax, @Data mov ds,ax cld mov cx, 9 lea si, list ; si points to list mov bl, [si] ; max <-- 1st element inc siStart: lodsb cmp al, bl jle BYPASS mov bl, al; al>bl --> bl to store new max BYPASS: loop Start ; print the max add bl, '0' ; digit to char mov dl,bl mov ah, 2 int 21H ; end program mov ah, 4CH int 21Hmain endp end main
Mã:#include <stdio.h>int main(){ int A[10]= { 1,2,4,5,6,3,2,3,9,6}; int maxA = 0; __asm { lea esi,A mov ecx, 10; mov edl,[esi];lay thanh ghi edl lam thanh ghi trung gian chua cac gia tri max trung gian inc esistart: lodsb cmp eal,edl jl TiepTucVongLap mov edl, ealTiepTucVongLap: loop start mov maxA,edx } printf("Phan tu max: %d ",maxA); return 0;}
-
27-12-2009, 04:20 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
tư duy theo cách của quangnh89
Mã:#include <stdio.h>int main(){ int A[10]= { 1,2,4,5,6,3,2,3,9,6}; int maxA = 0; __asm { lea esi,A mov ecx, 10; mov dl,[esi];lay thanh ghi edl lam thanh ghi trung gian chua cac gia tri max trung gian inc esistart: lodsb cmp al,dl jl TiepTucVongLap mov dl, alTiepTucVongLap: loop start mov maxA,edx } printf("Phan tu max: %d ",maxA); return 0;}
Gửi bởi whitepenguin
-
27-12-2009, 04:50 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mã:mov edx,dword ptr [esi];lay thanh ghi edl lam thanh ghi trung gian chua cac gia tri max trung gian add esi, 4start: mov eax, dword ptr [esi] add esi, 4 cmp eax, edx jl TiepTucVongLap mov edx, eaxTiepTucVongLap: loop start mov maxA,edx
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...