พื้นฐานการเลือกกระทำ
- รับค่าด้วย ah=01h รับและแสดงตัวอักษร
.model small
.data
.code
main proc
mov ax,@data
mov ds,ax
wow: mov ah,01h ; get and display
int 21h
cmp al,41h
jne wow
mov ah,4ch
int 21h
main endp
.stack 200h
end main
- รับค่าด้วย ah=08h แบบรับและไม่แสดงตัวอักษร
.model small
.data
.code
main proc
mov ax,@data
mov ds,ax
wow: mov ah,08h ; get and not display
int 21h
mov ah,02h ; display
mov dl,al
int 21h
cmp al,41h
jne wow
bye: mov ah,4ch
int 21h
main endp
.stack 200h
end main
- กำหนดตำแหน่งพร้อมกับการรับค่าไปเลือกด้วย ah=08h แบบหลายบรรทัด
.model small
.data
ln db 02h
.code
pmain proc far ; can not change far to near
push ds ; 1 of 5 line required for end .exe
mov ax,0 ; 2 clear ax by xor ax,ax
push ax ; 3 send ax to stack
mov ax,@data
mov ds,ax
; clear screen
mov ax,0600h ; al หมายถึงจำนวนบรรทัดที่ว่าง
mov bh,71h ; สีของพื้น และตัวอักษร
; 0=ดำ 1=น้ำเงิน 2=เขียว 3=ฟ้า 4=แดง 5=ม่วง 6=ทอง 7=เทา
mov cx,0000h ; มุมบนซ้าย
mov dx,103fh ; มุมล่างขวา
int 10h
new:
; move cursor
mov ah,02h ; กำหนดตำแหน่ง cursor
mov bh,00 ; เลขหน้าเป็น 0 ถึงจะเริ่มบนสุด
add ln,01h
mov dh,ln ; เริ่มต้นบรรทัดที่ 2
mov dl,10h ; เริ่มต้นหลักที่ 16 ( mov dx,0210h )
int 10h
wow:
mov ah,08h ; get and not display
int 21h
mov ah,02h ; display
mov dl,al
int 21h
cmp al,42h ; ถ้ากด B ก็จะเริ่มต้นรับข้อมูลในบรรทัดใหม่
je new
cmp al,41h ; ถ้าไม่กด A ก็จะรับตัวอักษรในแต่ละบรรทัดต่อไป
jne wow
; สรุปได้ว่ากด A แล้วเลิกรับข้อมูล และออกจากโปรแกรม
finish: ret
pmain endp
end pmain
|