Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    vòng for lồng trong _asm{}?

    Thông thường vòng for em dùng câu lệnh như sau

    Mã:
    mov cx,a
    start1:
    
    
    loop start1
    nhưng ví dụ có 3 hoặc 4 vòng for lồng nhau thì thanh ghi cx sẽ bị lẫn mất,vậy phải làm thế nào để khỏi lẫn giữa các vòng lặp vậy ?

    VD như


    Mã:
    mov cx,a;vòng lặp thứ nhất
    start1:
         ; thân vòng lặp thứ nhất
         mov cx,b;vòng lặp thứ 2
         start2:  <font color="Navy">--> giá trị cx ở vòng lặp thứ nhất sẽ bị chép đè khi sử dụng trong vòng lặp thứ 2
                ;than vong lap so 2
         loop start2
    loop start1
    </font>

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bạn có thể dùng PUSH và POP:
    Mã:
    mov cx,a;vòng lặp thứ nhất
    start1:
         ; thân vòng lặp thứ nhất
         push cx
         mov cx,b;vòng lặp thứ 2
         start2:  --> giá trị cx ở vòng lặp thứ nhất sẽ bị chép đè khi sử dụng trong vòng lặp thứ 2
                ;than vong lap so 2
         loop start2
         pop cx
    loop start1

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    mov cx,a;vòng lặp thứ nhất
    start1:
         ; thân vòng lặp thứ nhất
         push cx
         mov cx,b;vòng lặp thứ 2
         start2:  --> giá trị cx ở vòng lặp thứ nhất sẽ bị chép đè khi sử dụng trong vòng lặp thứ 2
                ;than vong lap so 2
                Push cx
                Mov cx,c
                Start3:;vòng lặp số 3
                    ; than vòng lặp số 3
                Loop start3 
                Pop cx    
         loop start2
         pop cx
    loop start1
    cho em hỏi thêm là VD em có 3 vòng lặp lồng nhau thì cũng làm thế à,VD như cái màu xanh bên trên không rõ có đúng không

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    cho em hỏi thêm là VD em có 3 vòng lặp lồng nhau thì cũng làm thế à,VD như cái màu xanh bên trên không rõ có đúng không
    sao bạn không chạy thử đi? Chạy chẳng phải là cách kiểm tra tốt nhất mà không cần phải hỏi đó sao?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    nói chung: dùng vòng lặp thì không cứ phải dùng cx đâu bạn , có thể dùng các thanh ghi khác mà, rồi kiểm tra nó có bằng 0 hay không, biến hóa 1 chút. Nếu Bạn dùng thêm 1 thanh ghi khác mà không ảnh hưởng thân vòng lặp thì nên dùng, tránh các lệnh thừa. Giống như lệnh JMP chẳng hạn, không cứ là phải dùng JMP mà có thể dùng CALL hoặc RET.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •