Bromleah

New Member

Download miễn phí Tài liệu Kiến trúc máy tính





Điều cơ bản của trạng thái tràn số liên quan đến thực tế rằng giới hạn của các
số có thể hiển thị trong giới hạn của Computer.
Như đã giải thích ở các phần trước, giới hạn của một số nguyên có dấu có thể
biểu diễn được bằng Word 16 bits là -32768 32767. Với số nguyên không dấu là 0
65535. Nếu kết quả tính toán vượt quá giới hạn trên, trạng thái tràn sẽ xảy ra và kết
quả sẽ bị cắt bớt để có thể biểu diễn được trong thanh ghi, do đó kết quả sẽ là sai. Để
có thể hiểu rõ hơn, ta có thể tham khảo ví dụ sau:
Số có dấu hay không dấu là tùy thao quy định. Khi ta thực hiện một phép
tính số học, có thể là phép cộng (+), có thể có 4 trường hợp xảy ra.
+ Không tràn số.
+ Tràn số vì dấu (+/ư).
+ Tràn số không dấu.
+ Tràn số cả trường hợp có dấu và không dấu.
Ví dụ sau là ví dụ tràn số không dấu. Giả định thanh ghi AX chứa giá trị
FFFFh, Thanh ghi BX chứa giá trị 0001h, Sử dụng lệnh ADD để cộng 2 giá
trị trên.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

c dạng chữ số decimal có
thể kết thúc bằng ký tự D hay d.
+ Các chữ số d•ới dạng Hex phải đ•ợc bắt đầu bằng một chữ số thập
phân (Decimal) và kết thúc bằng ký tự H hay h, Ví dụ "0ABCDh" Chữ số 0
đầu tiên, ký tự H sau cùng.
+ các ví dụ sau biểu diễn các các khai báo số hợp lệ trong ch•ơng trình:
Chữ số Loại dữ liệu
10101 Decimal
10101b Binary
3256 Decimal
-2453 Decimal
1,432 Không hợp lệ vì có chứa ký tự không phải là ký tự số
1B2Dh Hex
2B6C Không hợp lệ vì không kết thúc bằng ký tự H
FEEEH Không hợp lệ vì không bắt đầu bằng ký tự số
0FFFFH Hex
- Dữ liệu ký tự:
Các ký tự và chuỗi ký tự phải đ•ợc biểu diễn nằm trong cặp dấu nháy
đơn '..' hay nháy kép "..", ví dụ "A" hay 'hello'. Các ký tự đ•ợc biên dịch
sang hệ thống mã ASCII bởi ch•ơng trình dịch, vì vậy không có gì la khác
nhau giữa cách biểu diễn "A" và 41H (Mã ASCII của A)
- Các biểu diễn dữ liệu quy •ớc:
Quy •ớc Đại diện cho
DB Define Byte
DW Define Word
DD Define Doubleword (Dãy 2 Words)
DQ Define Quadword (Dãy 4 Words)
DT Define Ten Byte (Dãy 10 Bytes)
3- Biến:
Các biến trong ngôn ngữ bậc thấp đóng vai trò nh• các biến trong các ngôn
ngữ lập trình bậc cao. Mỗi biến dều có kiểu dữ liệu riêng và đ•ợc gán một vị trí bộ
nhớ nào đó bởi ch•ơng trình. Các loại biến nh• sau:
- Biến Byte (Byte Variables):
Khai báo biến theo định dạng nh• sau:
Name DB Initial value
Tên biến Kiểu biến Giá trị khởi tạo
Ví dụ khai báo:
This document is created with the unregistered phiên bản of Document2PDF Pilot.
Alpha DB 4
Ch•ơng trình sẽ tổ chức 1 byte bộ nhớ đặt tên là Alpha, khởi tạo dữ liệu
trong bộ nhớ là 4. Nếu không cần khởi tạo dữ liệu tr•ớc, ta chỉ cần thay đổi
một chút trong khai báo nh• sau:
Alpha DB ?
Dấu "?" để thay thế cho dữ liệu cần khởi tạo.
Giới hạn khai báo của biền loại này theo giá trị Decimal:
-128 137 nếu sử dụng các số có dấu.
0 255 nếu sử dụng số không dấu.
- Biến Word (Word Variables):
Khai báo biến theo định dạng nh• sau:
Name DW Initial value
Tên biến Kiểu biến Giá trị khởi tạo
Ví dụ khai báo:
Alpha DB -4
Ch•ơng trình sẽ tổ chức 2 bytes bộ nhớ để sử dụng cho loại biến này.
Giới hạn sử dụng theo giá trị Decimal:
- 32768 32767 nếu sử dụng các số có dấu.
0 65535 nếu sử dụng các số không dấu.
- Biến mảng (Array Variables):
Trong ngôn ngữ Assembly, một mảng là một dãy các bytes hay words
bộ nhớ. Ví dụ nh• ta định nghĩa một mảng gồm 3 Bytes với các giá trị khởi
tạo lần l•ợt là 10h, 20h, 30h:
B_Array DB 10h,20h,30h
B_Array là Byte đầu tiên, B_Array +1 là Byte thứ 2 và B_Array + 2 là
Byte thứ ba. Nếu ch•ơng trình tổ chức địa chỉ 200h cho biến, bộ nhớ sẽ đ•ợc
phân bố nh• sau:
Địa chỉ Nội dung bộ nhớ
B_Array 200h 10h
B_Array + 1 201h 20h
B_Array + 2 202h 30h
T•ơng tự nh• trên, một mảng kiểu Word đ•ợc phân bố nh• sau:
W_Array DW 1000,40,29870,323
Địa chỉ Nội dung bộ nhớ
W_Array 0300h 1000d
W_Array + 1 0302h 40d
W_Array + 2 0304h 29870d
W_Array + 3 0306h 323d
- Byte thấp và Byte cao của Word.
Đôi khi ta chỉ cần sử dụng Byte cao hay byte thấp trong một biến dạng
Word. Ví dụ ta khai báo nh• sau:
Word01 DW 1234h
Byte thấp chứa giá trị 34h, Byte cao chứa giá trị 12h.
- Chuỗi ký tự (Character Strings):
Một mảng các mã ASCII có thể đ•ợc khởi tạo với một chuỗi các ký tự.
Ví dụ nh• sau:
Letters DB 'ABC'
Cũng có thể đ•ợc khai báo nh• sau:
Letters DB 41h,42h,43h
This document is created with the unregistered phiên bản of Document2PDF Pilot.
Trong một chuỗi, ch•ơng trình dịch phân biệt giữa các ký tự chữ hoa và
chữ th•ờng. Do đó 'ABC' (41h,42h,43h) sẽ khác với 'abc' (61h,62h,63h). ta có
thể khai báo kết hợp cả ký tự chữ cái và ký tự số chung một biến:
Mess DB 'Hello',0Ah,0Dh,'$'
T•ơng đ•ơng:
Mess DB 48h,45h,4Ch,4Ch,4Fh,0Ah,0Dh24h
- Hằng số đ•ợc định nghĩa (named Constants):
Nhằm mục đích để mã ch•ơng trình dễ hiểu hơn, ta th•ờng khai báo
một số hằng số cố định. Để khai báo hằng số, ta sử dụng từ khoá EQU, Cú
pháp nh• sau:
Name EQU Constant
Tên t•ơng đ•ơng Hằng số
Ví dụ:
LF EQU 0Ah
Giải thích:
Ta dùng tên LF cho giá trị 0Ah, Mã ASCII của 0Ah là Line
Feed (Xuống dòng). Tên LF có thể dùng để thay thế cho 0Ah bất cứ chỗ nào
trong ch•ơng trình. Hai câu lệnh sau là t•ơng đ•ơng:
Mov DL,0Ah ;và
Mov DL,LF
4- Một số lệnh cơ bản
Có hàng trăm lệnh trong bộ lệnh của CPU, chúng cũng đ•ợc thiết kế thêm cho
các loại CPU về sau này. Trong phần này, chúng ta chỉ quan tâm đến một số lệnh
thông dụng nhất đ•ợc sử dụng để di chuyển dữ liệu và một số tính toán số học.
Các mô tả d•ới đây sử dụng các từ Word01, Word02 nh• biến kiểu Word,
Byte01, Byte02 nh• biến kiểu Byte.
- Lệnh MOV và lệnh XCHG
+ Lệnh MOV đ•ợc sử dụng để di chuyển dữ liệu giữa các thanh ghi,
giữa thanh ghi và vị trí nào đó của bộ nhớ hay di chuyển trực tiếp một số vào
thanh ghi hay bộ nhớ.
Cú pháp lệnh:
MOV Destination, Source
Di chuyển Đích đến , Nguồn
Ví dụ:
Mov AX,Word01
Giá trị có trong thanh ghi AX sẽ đ•ợc thay thế bởi giá trị đ•ợc l•u
trong vị trí bộ nhớ Word01. Giá trị trong Word01 không bị thay đổi.
Mov AX,BX
AX nhận giá trị từ BX, Giá trị của BX không thay đổi.
Mov AX, 'A'.
Giá trị mã ASCII 041h sẽ đ•ợc di chuyển vào thanh ghi AX. Cụ
thể là vào Byte cao của AX (AH).
+ Lệnh XCHG: Đ•ợc sử dụng để tráo đổi giá trị giữa 2 thanh ghi, giữa
thanh ghi và bộ nhớ.
Cú pháp lệnh:
XCHG Destination, Source
Tráo đổi Đích đến , Nguồn
Ví dụ:
XCHG AX,BX
This document is created with the unregistered phiên bản of Document2PDF Pilot.
Đổi vị trí các giá trị của AX và BX lẫn nhau, AX sẽ l•u trữ
giá trị của BX và ng•ợc lại.
XCHG AX,Word01
Tráo đổi giá trị của AX và giá trị tại vị trí bộ nhớ Word01.
+ Điều cấm trong khi sử dụng 2 lệnh trên:
Vì các lý do về kỹ thuật, có một số các quy định mà ng•ời lập
trình phải tuân theo. Ví dụ minh hoạ:
Mov Word01,Word02 ; Không hợp lệ
Phát biểu lệnh trên là không hợp lệ, không đ•ợc phép di chuyển
dữ liệu trực tiếp từ vị trí bộ nhớ này sang vị trí bộ nhớ khác. Để có thể
làm đ•ợc việc trên ta phải thay đổi câu lệnh nh• sau:
Mov AX,Word02
Mov Word02,AX
Các kết hợp hợp lệ giữa các toán hạng trong 2 lệnh trên:
Destination Operand
Source Operand General Register Segment Register Memory Location Constant
General Reg Yes Yes Yes No
Segment Reg Yes No Yes No
Mem Location Yes Yes No No
Constant Yes No Yes No
Destination Operand
Source Operand General Register Memory Location
General Register Yes Yes
Memory Location Yes No
- Lệnh ADD, SUB, INC và DEC
+ Lệnh ADD và lệnh SUB đ•ợc sử dụng để thực hiện các phép tính
cộng, trừ giá trị giữa 2 thanh ghi, Giữa thanh ghi và bộ nhớ hay để cộng (trừ)
một số vào (ra) một thanh ghi hay bộ nhớ.
Cú pháp lệnh:
ADD Destination, Source
SUB Destination, Source
Ví dụ:
ADD Word01,AX
Cộng giá trị có trong AX vào Word01. Kết quả l•u trong Word01.
SUB AX,DX
Giá trị của thanh ghi DX sẽ bị trừ đi giá trị của thanh ghi AX, Kết
quả đ•ợc l•u trong thanh ghi AX, Giá trị của thanh ghi DX đ•ợc giữ
nguyên.
ADD BL,5
Cộng 5 vào giá trị đã có sẵn trong thanh ghi BL.
+ Quy tắc hợp lệ:
Destination Operand
Source Operand General Register Memory Location
General Register Yes Yes
Memory Location Yes No
This doc...
 

Các chủ đề có liên quan khác

Top