assembly

การกำหนดเซกเมนต์

posted on 01 Apr 2008 12:50 by dj-darkburn  in assembly

;------------stack segment------------------

name1               SEGMENT

                          DB 64 DUP (?)

name1                ENDS

;-----------data segment--------------------

name2                SEGMENT

DATA1                DW 2345H

DATA2                DW 98F4H

RESULT DW       ?

name2                 ENDS

;-------------code segment------------------

name3               SEGMENT

MAIN                  PROC FAR

                          ASSUME...........................

                           MOV AX,name2

                           MOV DS,AX

                           ----------------

MAIN                   ENDP

name3                ENDS

                          ENDMAIN

interrupt DOS (INT 21H)

เป็นคำสั่งทีใช้เรียกโปรแกรมย่อยของ DOS โดยมีฟังก์ชัน

ให้ใช้งานหลายฟังก์ชัน เราสามารถใช้งานฟังก์ชันต่างๆ

ได้โดยการกำหนดค่าในรีจิสเตอร์ AH

หมายเลขฟังก์ชัน-โปรแกรมย่อย

1-รับข้อมูลทางคีย์บอร์ดอินพุต

2-แสดงตัวอักขระหนึ่งตัวทางจอภาพ

8-รับข้อมูลทางคีย์บอร์ดแต่ไม่แสดงผล

9-แสดงชุดตัวอักษร

Single-key input

MOV AH,1 ;ใส่ค่าของฟังก์ชัน

INT 21H ;จะได้รหัสแอสกีมาทางรีจิสเตอร์ AL

Display a character

MOV AH,2

MOV DL,'?'

INT 21H

ฟังก์ชันนี้จะแสดงตัวอักษร ? ออกทางจอภาพ

นอกจากนั้นฟังก์ชันนี้ยังสามารถใช้ส่งรหัสควบคุมได้อีกด้วย

รหัสควบคุมมีดังนี้

7-BEL-Bell

8-BS-backspace

9-HT-tab

A-LF-line feed

D-CR-carriage return