Đang tải dữ liệu...

Vui lòng chờ
:: Quên mật khẩu ::

Lần truy cập trước của bạn:
Hôm nay: 11/12/2017, 23:49
Xem bài mới từ lần truy cập trước
Xem bài của bạn
Xem bài chưa có ai trả lời
 Share | 
Hướng dẫn học AssemblerXem chủ đề cũ hơn Xem chủ đề mới hơn Go down

avatar

ruaconda07tt



.:.Thông tin.:.

Giới tính Giới Tính: Nam
NickName User: ruaconda07tt
Đến từ Đến từ : DA07TT
Age Age : 28
Posts Posts : 226
Join date Join date : 12/06/2009

Giới tính Giới tính : Nam
Age Age : 28
Birthday Birthday : 05/11/1989
Job/hobbies Job/hobbies : MUSIC,TAM,&...&...^_~
Đến từ Đến từ : DA07TT
Sở thich của bạn Sở thich của bạn : everything
Posts Posts : 226
Points Points : 14797
Thanks Thanks : 25
Join date Join date : 12/06/2009
Pet Pet : 10 .Turdle


17/11/2010, 11:33
Nguồn bài gửiNguồn: http://da07tt.forum-2007.com/t788-topic
Bài gửiTiêu đề: Hướng dẫn học Assembler
Da07tt Community - Kết nối bạn bè 
------------------------------------------------------------------
Học Assembly Chương 1
Bài viết đựoc viết gốc bởi Scifi – Không sao chép / sửa đổi và phải đựoc sự cho phép của tác giá trứoc khi post sang nguồn khác hoặc / và upload lên host khác, hoặc / và biên soạn ebook.
Lời nói đầu
Trứoc hết tớ xin nói rằng ngôn ngữ Assembly không hề dễ, nếu đọc không kĩ bạn sẽ không hiểu gì cả ! Nhưng nếu bạn thực sự muốn học Asm thì hãy đọc kĩ từ đầu tới cuối vì nó không như ‘C++ Basic’ hồi trứoc của tớ nên không thể lứot ngang qua !
Trình biên dịch (Compiler)
Compiler đựoc dùng nhiều để compile .ASM hiện nay đó là MASM. Ngoài ra bạn cũng cần có 1 chưong trình kết dính (Linker) để kết xuất .exe. Qui trình soạn vs. compiler như sau :
ChuongTrinh.asm + MASM + Link = ChuongTrinh.exe
Nhập môn Assembly
0.Hello World
Nếu bạn không nắm bắt Hello world thì khúc sau sẽ không hiểu gì đâu…nên đọc kĩ vào nhá!!
Trích dẫn:
MOV AH,9
MOV DL,”Hello Loctien !”
INT 21H


Dòng 1 : MOV AH,2 ta dùng như :
AH,<F_N>
F_N đựoc qui định như sau :
1 -> yêu cầu nhập kí tự từ bàn phím
2 -> xuất 1 kí tự ra màn hình
9 -> xuất 1 chuỗi ra màn hình
Ví dụ :
MOV AH,1
MOV AH,2
Bạn thấy dòng 2 không ? nó là MOV DL,”Hello Loctien !” phải không ?
Dòng này có nhiệm vụ in chuỗi “Hello Loctien !” ra ngoài. Vậy muốn in ra ta phải nhờ đến dòng trứoc MOV AH,9 trong đó 9 là xuất 1 chuỗi ra màn hình. Vậy, ta kết luận :
.In chí 1 Kí tự ra màn hình
Trích dẫn:
MOV AH,2
MOV DL,’A’


.In nhiều kí tự ra màn hình
Trích dẫn:
MOV AH,9
MOV DL,’Scifi’


Nhưng nhiều khi ta dừng tới đó khi compile và chạy, bảng chỉ bật 1 cái bụp rồi tắt, vậy ta làm thế nào để giữ nó lại trong màn hình giống như readln; của Pascal ? Ta dùng lệnh ngắt. Cú pháp : INT ngắt
Ở VD này ta dùng INT 21H tức là nếu thêm INT 21H vào cuối ta sẽ keep window luôn giữ mà không mất.
Ta có :
Trích dẫn:
MOV AH,9
MOV DL,’Scifi’
INT 21H


0.1.Chú thích
Chú thích ta viết ;
Ví dụ :
Trích dẫn:
;blah blah
;Nguyễn Du No.1
;GameDev VN No.1
;DB 00 <= cái này cũng là chú thích


1.Biến
Khai báo biến :
[Tên] [Kiểu] [Giá trị]
Tên <-> tên biến
Kiểu <-> kiểu biến ở đây ta dùng các kiểu như sau :
DT : kiểu 10 bytes
DQ : từ tứ 8 bytes
DW : từ 2 bytes
DD : từ kép 4 bytes
DB : định nghĩa 1 byte
Giá trị : đê giá trị khởi tạo; không khởi thì để ‘?’.
Ví dụ :
Trích dẫn:
SCF DB ‘SCIFI’ ;Chuỗi SCIFI
HUY DB 17 ;Biến HUY kiểu định nghĩa 1byte
HLW DB “Hello World” ;biến HLW chứa chuỗi Hello World
NAME DB ? ;Không có gì cả ??
; Khai báo mảng
MY_ARRAY DB 1,2,6,7,3,7,3,4
;Mảng MY_ARRAY gồm 8pt


2.Toán tử
Toản tử ‘?’
Khi muốn khai báo một biến giá trị = 0 ta dùng ?
Trong C++ / Pascal :
Int myint = 0; ;không có gì cả
Var f : kiểu; ;không có gì cả
Trong ASM :
MYVAR DB ? ;không có gì cả
Toán tử DUP
Toán tử DUP dùng lặp lại 1 / nhiều giá trị khởi tạo, dùng để tạo ma trận / màng 2 chiều.
Ví dụ :
MYVAR DB 75 DUP(?) -> 75 byte chưa khởi tạo
MYNAME DB 81 DUP(7575) -> 81 bytes bằng 7575
MYCHAR 4 DUP(‘MYTH’) -> 4*4 = ‘MYTHMYTHMYTHMYTH’
Toán tử số học
Các toán tử hỗ trợ : + , - , * , / , MOD (chia lấy dư), SHL (Left – +N sang trái bit), SHR (Right +N sang phải bit), Not (phủ định <-> “!=”, không phải), and (và <-> “&&” hoặc “&”), or (hoặc <-> “||” ), XOR.

Nguồn:http://diendan.loctien.net


Chữ Kí Của: ruaconda07tt
Giới tính Giới tính : NamAge Age : 28Birthday Birthday : 05/11/1989Job/hobbies Job/hobbies : MUSIC,TAM,&...&...^_~Đến từ Đến từ : DA07TTSở thich của bạn Sở thich của bạn : everythingPosts Posts : 226Points Points : 14797Thanks Thanks : 25Join date Join date : 12/06/2009Pet Pet : 10 .Turdle

Thông điệp:

****************Hãy cùng chia sẻ với bạn bè bằng cách****************

Copy đường Link dưới đây gửi đến nick yahoo bạn bè!


Hướng dẫn học AssemblerXem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
Trang 1 trong tổng số 1 trang
* Viết tiếng Việt có dấu, là tôn trọng người đọc.
* Chia sẻ bài sưu tầm có ghi rõ nguồn, là tôn trọng người viết.
* Thực hiện những điều trên, là tôn trọng chính mình.
-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài
AVIM Control [F12 to Hide]
AutoTelexVNIVIQRVIQR*OffSpellOldAccent

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: 

Góc Học Tập - Kho Tài Liệu

 :: 

Lập Trình Tổng Hợp

 :: 

Tài liệu-Ebooks

-
 




Thông tin diễn đàn
Copyright ©2008 - 2009, DA07T Forum.
Design by by Mai Minh Thuận [Admin]
Bản quyền by Haitac261189.
RSS Liên hệ MAP
Powered by phpBB Version 2.0 Lisenced
Copyright ©2000 - 2008.
Gửi cho bạn trang này | Click vào tải Firefox 3 || Lưu ý:Nên sử dụng Fire Fox 3 để duyệt Web
Free Auto Backlinks From WebXayDung.VNText Back Links Exchange
Free forum | © phpBB | Free forum support | Liên hệ | Report an abuse | www.sosblogs.com