1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài thực hành số 4: Làm việc với số nguyên

2 601 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài thực hành số 4: Làm việc với số nguyên
Trường học Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội
Chuyên ngành Ngôn ngữ hợp ngữ
Thể loại Bài thực hành
Định dạng
Số trang 2
Dung lượng 61,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài thực hành số 4Làm việc với số nguyên Mục đích  Biết sử dụng các phép toán logic, số học  Biết cách đổi giữa các cơ số nhị phân, thập phân và thập lục phân Tóm tắt lý thuyết Phép to

Trang 1

Bài thực hành số 4

Làm việc với số nguyên Mục đích

 Biết sử dụng các phép toán logic, số học

 Biết cách đổi giữa các cơ số nhị phân, thập phân và thập lục phân

Tóm tắt lý thuyết

Phép toán trên bit

1 NOT : lệnh này đổi tác tố đích thành số bù Không có cờ nào bị ảnh hưởng

2 AND (OR hoặc XOR) : AND (OR, XOR) Đích, nguồn

Tất cả các cờ đều bị ảnh hưởng

Chú ý : AND dùng để xóa các bit OR dùng để bật các bit XOR dùng để đảo bit

3 Các lệnh dịch bit SHL và SHR : dịch các bit của toán hạng đích sang trái (hoặc phải) một hay nhiều bit

SHL (SHR) Đích, 1 hoặc SHL (SHR) Đích, CL

CL là số lần dịch bit.Việc dịch bit trái (phải) tương ứng với phép nhân (chia) cho

lũy thừa 2

Chú ý : Hiện tượng tràn số có thể xảy ra và cờ CF chứa bit cuối cùng bị dịch ra

khỏi toán hạng.Để dịch bit với các số âm ta nên dùng SAL hoặc SAR tương ứng

4 Các lệnh quay ROL và ROR : dịch các bit của toán hạng đích sang trái (phải)

một hay nhiều bit theo vòng tròn

ROL (ROR) Đích, 1 hoặc ROL (ROR) Đích, CL

CL là số lần quay bit, cờ CF sẽ chứa giá trị bit bị dịch ra khỏi toán hạng

Chú ý : Để dịch bit qua cờ nhớ ta dùng RCL hoặc RCR tương ứng

Ví dụ : Sử dụng lệnh ROL để đếm số bit 1 trong thanh ghi BX

XOR AX,AX

MOV CX,16 TOP :

ROL BX, 1

NEXT:

LOOP TOP ; lặp cho đến khi làm xong

Lệnh số học

1 Cộng ADD, ADC : ADD (ADC) đích , nguồn

Ví dụ : ADD AL , 10H -> AL = AL + 10H

2 Trừ SUB, SBB : SUB (SBB) đích , nguồn

Ví dụ : SUB BL, 10H -> BL = BL – 10H

Chú ý : Các phép toán cộng trừ trực tiếp giữa các ô nhớ là không hợp lệ Ngoài ra

ta cũng có thể sử dụng INC hoặc DEC để cộng hoặc trừ 1 đơn vị vào nội dung

một ô nhớ hoặc một thanh ghi

3 Nhân MUL, IMUL: MUL (IMUL) nguồn

Lệnh MUL thực hiện phép nhân không dấu, còn IMUL là lệnh nhân có dấu Nếu nguồn là byte (8 bit) thì kết quả chứa trong AX và AX = AL * nguồn Nếu nguồn là word (16 bit) thì kết quả chứa trong DX:AX và DX:AX = AX * nguồn Nếu nguồn là double (32 bit) thì kết quà chứa trong EDX:EAX và EDX:EAX = EAX * nguồn

4 Chia DIV, IDIV : DIV (IDIV) số chia

Trang 2

Lệnh DIV thực hiện chia không dấu, còn IDIV là lệnh chia có dấu Nếu số chia là byte (8 bit) thì số bị chia là AX và kết quả gồm: phần dư = AH, phần thương = AL Nếu số chia là word (16 bit) thì số bị chia là DX:AX và kết quả gồm phần dư = DX, phần thương = AX Nếu số chia là double thì sô bị chia là EDX:EAX và kết quả gồm phần dư = EDX, phần thương = EAX

Chú ý : phải xoá giá trị DX hoặc EDX trước khi nhân, hoặc chia

Tài liệu tham khảo

1 Nguyễn Minh Tuấn, Giáo trình hợp ngữ - Chương 7, ĐHKHTN, 2002

2 Randal Hyde, The art of assembly language programming – Chapter 9

3 Norton Guide

4 Dan Rollins, TechHelp v.6.0

Bài tập

1 Viết chương trình (VCT) đổi một số dạng thập phân sang thập lục phân

Ví dụ: Nhập một số hệ 10 : 26

Dạng thập lục phân: 1A

2 VCT nhập một số hệ thập phân rồi xuất ra biểu diễn dạng nhị phân của nó

Ví d

ụ : Nhập số hệ 10: 26

Dạng nhị phân: 11010

3 VCT đổi một số dạng thập lục phân sang sang thập phân

Ví d ụ : Nhập số hệ thập lục phân: 1a (hoặc 1A)

Dạng thập phân của nó là: 26

4 VCT đổi một số dạng thập lục phân sang nhị phân

Ví d

ụ : Nhập số hệ thập lục phân: 1a (hoặc 1A)

Dạng biểu diễn nhị phân là : 00011010

5 VCT đổi một số dạng nhị phân sang thập phân

Ví d

ụ : Nhập một số nhị phân: 11010

Dạng thập phân là: 26

6 VCT đổi một số dạng nhị phân sang thập lục phân

Ví d

ụ : Nhập một số nhị phân: 11010

Dạng thập lục phân là: 1A

7 VCT “echo” với yêu cầu: nhập vào số nguyên dương n và một kí tự bất kì, sau đó trên màn hình xuất hiện n lần kí tự đó

Ví d

ụ : Nhập một kí tự: k Nhập số lần n : 5  Kết quả : kkkkk.

8 VCT nhập vào hai số nguyên dương Tính tổng, hiệu, tích, thương (phép div) và phần dư khi chia 2 số nguyên (phép mod)

Ví d

ụ : Nhập số thứ nhất : 14 Nhập số thứ hai : 16

Tổng hai số là : 30 Hiệu: -2 Tích: 224 Thương: 0 Phần dư: 14

Mở rộng

1 Tìm hiểu về BCD Viết chương trình nhập 2 số nguyên ở hệ 10, chuyển sang BCD, tính tổng, hiệu và in kết quả ở hệ 10

2 Liệu có thể viết chương trình tính được 20!, 30!, kết quả in ra ở dạng hex ? dạng cơ số 10 ?

Ngày đăng: 24/10/2013, 19:15

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w