![]() | เซกเมนต์ (Segment) | ![]() |
|
| :: โปรแกรมนี้เป็นการกำหนด segment แบบเดิม
:: ผลของโปรแกรมนี้คือ ตัวอักษร c เพราะตัวอักษร a คือ 61h | |
seg1.asm : โปรแกรมพิมพ์อักษร a ด้วย int 21 บริการ ah=2|
|
sseg segment
db 64 dup(?)
sseg ends
dseg segment
a db 61h
dseg ends
cseg segment
main proc far
assume cs:cseg,ds:dseg,ss:sseg
mov ax,dseg
mov ds,ax
mov dl,a
mov ah,2h
int 21h
mov ah,4ch
int 21h
main endp
cseg ends
end main
|
| :: โปรแกรมนี้เป็นการกำหนด segment แบบเดิม
:: ผลของโปรแกรมนี้คือ ตัวอักษร c เพราะตัวอักษร a คือ 61h | |
seg2.asm : โปรแกรมพิมพ์อักษร ที่เกิดจากคำสั่ง add register al และ bl|
|
sseg segment
db 64 dup(?) ; กำหนดที่ว่าง 64 byte
sseg ends
dseg segment
data1 db 31h
data2 db 32h
sum db ?
dseg ends
cseg segment
main proc far
assume cs:cseg,ds:dseg,ss:sseg
mov ax,dseg
mov ds,ax
mov al,data1
mov bl,data2
add al,bl
mov sum,al
mov dl,sum
mov ah,2
int 21h
mov ah,4ch
int 21h
main endp
cseg ends
end main
|
| :: โปรแกรมนี้เป็นการกำหนด segment แบบเดิม
:: ผลของโปรแกรมนี้คือ ตัวอักษร a ถึง z แล้ววนกลับมา a อีก | |
seg3.asm : พิมพ์อักษร 1 ตัว รอรับ any key พิมพ์ถึง z แล้ววนมา a ใหม่ หยุดเมื่อกด Ctrl-C|
|
sseg segment
db 64 dup(?) ; กำหนดที่ว่าง 64 byte
sseg ends
dseg segment
data1 db 60h
data2 db 01h
sum db ?
dseg ends
cseg segment
main proc far
assume cs:cseg,ds:dseg,ss:sseg
mov ax,dseg
mov ds,ax
mov al,data1
mov bl,data2
burin:
add al,01h
mov sum,al
mov dl,sum
mov ah,2h
int 21h
mov ah,08h
int 21h
mov al,sum
cmp al,7ah
jne burin
mov al,60h
jmp burin
main endp
cseg ends
end main
|
| :: โปรแกรมนี้เป็นการกำหนด segment แบบเดิม
:: นำ seg3.asm มาปรับให้สั้นลง | |
seg4.asm : พิมพ์อักษร 1 - 5 แล้วเลิกการทำงาน|
|
sseg segment
db 64 dup(?) ; กำหนดที่ว่าง 64 byte
sseg ends
dseg segment
data db 30h
sum db ?
dseg ends
cseg segment
main proc far
assume cs:cseg,ds:dseg,ss:sseg
mov ax,dseg
mov ds,ax
mov al,data
burin:
add al,01h
mov sum,al
mov dl,sum
mov ah,2h
int 21h
mov al,sum
cmp al,35h
jne burin
mov ah,4ch
int 21h
main endp
cseg ends
end main
|
| :: โปรแกรมนี้เป็นการกำหนด segment แบบใหม่ และง่ายกว่า
:: ผลของโปรแกรมนี้คือ ตัวอักษร c เพราะตัวอักษร a คือ 61h และเพิ่มการพิมพ์ String เข้าไปจากตัวอย่างข้างต้น | |
seg5.asm : พิมพ์ cburin rujjanapan แล้วเลิกการทำงาน
.model small
.stack 64h
.data
data1 db 31h
data2 db 32h
data3 db 'burin rujjanapan $'
sum db ?
.code
main proc
mov ax,@data
mov ds,ax
mov al,data1
mov bl,data2
add al,bl
mov sum,al
mov dl,sum
mov ah,2
int 21h
lea dx,data3
mov ah,9
int 21h
mov ah,4ch
int 21h
main endp
end main
|