– NHẬP MÔN HỢP NGỮ DSEG SEGMEMT ; TẠO ĐOẠN DSEG CHUOI DW “WEL...

Bài 1 – Nhập môn hợp ngữ

DSEG

SEGMEMT ; Tạo đoạn DSEG

chuoi

DW “Wellcome to Assembly$” ; Khai báo biến chuỗi

DSEG

ENDS

CSEG

SEGMENT

;

Tạo đoạn CSEG

ASSUME

CS:

CSEG,

DS: DSEG ; CSEG là đoạn lệnh, DSEG là dữ liệu

begin:

MOV

BX, SSEG ;

Khởi động địa chỉ đoạn dữ liệu

MOV

DS,

BX

MOV

AH,

09h

;

AH

← 09h

LEA

DH, chuoi ; DX ← địa chỉ offset biến chuoi

INT

21h

;

gọi ngắt 21h

MOV

AH,

01h

;

AH

← 01h

MOV AH, 4Ch

; Thoát chương trình

INT

21h

CSEG

ENDS

END

Begin

3.3. Viết các chương trình đơn giản:

3.3.1. [SUM1.ASM] Viết chương trình dạng EXE để tính kết quả biểu thức sau, lưu

trữ kết quả trong AX:

10 + 8086 - 100h + 350 + 0FAh

Lưu ý: - Chỉ khai báo 1 đoạn lệnh để viết chương trình.

a.

Dịch sửa lỗi (nếu có lỗi) và chạy chương trình.

b.

Dùng Emu8086 để chạy chương trình trên và kiểm tra kết quả lưu trong AX.

3.3.2. [SUM2.ASM] Viết chương trình dạng EXE để tính kết quả biểu thức có dạng

tổng quát như sau:

KQUA = A + B – C + D + E

Trong

đó: KQUA, A, B, C, D, E là các biến 2 byte khai báo trong đoạn dữ liệu.

Lưu ý: - Chương trình gồm 2 đoạn:

Đoạn lệnh và Đoạn dữ liệu dùng để chứa các

Biến.

a.

Gán giá trị các biến A = 1000, B = 10, C = 1Fh, D = 30h, E = 300Ah. Dịch và

chạy chương trình.

b.

Dùng Emu8086 để kiểm tra kết quả của câu a.

c.

Áp dụng SUM2.ASM để tính biểu thức đã cho ở câu 3.3.1. Dùng Emu8086 để

kiểm tra kết quả.

4. BÀI TẬP ĐỀ NGHỊ:

4.1. Dùng Emu8086 để khảo sát các lệnh khác trong tập lệnh của Intel-8086.

4.2. Tự tìm hiểu thêm những chức năng khác của Emu8086