วันพฤหัสบดีที่ 22 กรกฎาคม พ.ศ. 2553

assembly

hLab06 -input string and print reverse direction
-------
ให้ศึกษาโปรแกรมอื่นๆที่ผ่านมาและโปรแกรมข้างล่าง
ซึ่งเป็นโปรแกรมที่รับข้อมูล 4 ตัวอักขระ
เข้าไปไว้ในหน่วยความจำที่ตำแหน่ง inst
โดยใช้ register bx เป็นตัวชี้ตำแหน่งข้อมูล

จงเขียนโปรแกรมเพื่ออ่านข้อมูลชื่อนักศึกษา
(student name) กำหนดจำนวนตัวอักษรเท่ากับชื่อของแต่ละคน
เช่น SUPAKIT มีความยาวเท่ากับ 7 ไบท์
อ่านเข้าไปยังหน่วยความจำในลักษณะย้อนกลับ
โดยมีข้อความนำดังนี้

Enter your name pls: ป้อนข้อมูลเป็น SUPAKIT

จากนั้นแสดงผลทางหน้าจอ พิมพ์ข้อความว่า

hello, welcome to MJU
your reverse name is TIKAPUS
glad to see you..naja

ให้ส่งไฟล์ .lst พร้อม output (อย่าลืมเขียน comment ชื่อ-รหัส ในโปรแกรมด้วย)

สาระสำคัญ
-----------
โปรแกรม lab05-in4char.lst ทำการอ่านข้อมูล 4 ตัวจากแป้นพิมพ์
1. คำสั่งรอรับข้อมูล (ข้อมูลที่ได้จะเก็บไว้ใน register al)
mov ah,1 ;wait for kb
int 21h
2. แต่ละตัวอักขระที่รับเข้าจะนำไปเก็บไว้ที่ตำแหน่ง inst โดยใช้
register bx เป็น index
mov inst[bx],al
3. คำสั่งวนกลับ
loop
คำสั่ง loop จะลดค่า cx ลง 1 โดยอัตโนมัติและสิ้นสุดเมื่อ cx เป็นศูนย์
ถ้าใช้คำสั่ง jnz จะต้องลดค่า cx เอง
4.แสดงผลทางจอภาพ และขึ้นบรรทัดใหม่
ใช้ function 9 ของ DOS service (int 21h) เพื่อแสดงข้อความ
ตั้งแต่ตำแหน่งที่กำหนดใน reg dx จนถึง "$"
.model small
0000 .data
0000 3F 3F 3F 3F 24 inst byte "????$"
0005 0A 0D 24 CrLf byte 0ah,0dh,'$'
0000 .code
0000 main proc
0000 B8 ---- R mov ax,@data ;define data segment
0003 8E D8 mov ds,ax
0005 B9 0004 mov cx,4
0008 BB 0000 mov bx,0
000B loop1:
000B B4 01 mov ah,1 ;wait for kb
000D CD 21 int 21h
000F 88 87 0000 R mov inst[bx],al
0013 43 inc bx
0014 E2 F5 loop loop1

0016 B4 09 mov ah,9 ;display newline
0018 BA 0005 R mov dx,offset CrLf
001B CD 21 int 21h
001D B4 09 mov ah,9 ;display inst
001F BA 0000 R mov dx,offset inst
0022 CD 21 int 21h
;exit to DOS
0024 B4 4C mov ah,4ch
0026 CD 21 int 21h
0028 main endp
end


Algorithm (กรณีของ SUPAKIT)
-----------
1.define data area for input data (inst byte "XXXXXXX$")
2.set counter to 7 (mov cx,7)
3.set register bx to last position for index (inst[0],inst[1],...,inst[6])
4.do loop
read a character from keyboard by DOS sevice function 1
save input character into data area with index bx
format: mov data_area[index],al
decrease index by 1 (dec bx)
decrease counter (dec cx)
loop while not zero (jnz loop1)
5.print output (reverse name)
6.exit to DOS

วันจันทร์ที่ 24 สิงหาคม พ.ศ. 2552

ea

ลูกคงวิทย์ (ตาคงวิทยา รัชมังคลาภิเษก) มีคุณธรรม นำวิชาการ สืบสารงานพระราชดำริ คือคำขวัญของโรงเรียน ที่แห่งนี้ได้หล่อหลอมตังผมให้รู้ถึงถึงความเป็นคน จึงเสมือเป็นบ้านหนังที่ สอง ที่สอนให้ผมรู้ว่า เกิดมาเป็นคนแล้วควรสนใจที่จะประพฤติปฏิบัติตนให้มีศีล คนทีมีศีลนั้นต้องมีหลักคุณธรรม และจริยธรรมเป็นหลักยึด มีธรรมะกำกับใจอยู่เสมอ สิ่งเหล่านี้ได้หลอมตัวของผมให้มีจิตใจสำนึกในการอยู่ในศีล
ครั้งหนึ่งผมเป็นไปปฏิบัติธรรมถือศีลเนื่องในโอกาสวันแม่แห่งชาติเป็นเวลาสามวันสองคืน ณ วัดบ้านสะพานโดยมีพระอาจารย์อบรมสั่งสอน พระอาจารย์ได้สอนว่า “ผู้ที่มีศีลทำให้คนเป็นมนุษย์ที่สมบูรณ์ ผู้ใดมีศีลผู้นั้นย่อมเห็นทางสว่าง” ด้วยเหตุนี้ทำให้ผมปฏิบัติตนให้อยู่ศีลในธรรมในการดำเนินชีวิต
วันนี้ผมเริ่มเข้าสู่วัยผู้ใหญ่ โลกใบเดิมของผมเริ่มมีการเปลี่ยนแปลง อาจเป็นพระว่าผมได้ก้าวสู่โลก ที่กว้างใหญขึ้น มีโอกาศได้สัมผัสโลกหลากหลายมุมมองขึ้น โลกใบเดิมที่เคยสวยงาม และสงบสุขกลับดูสับสนวุ่นวายขึ้น ทุกคนรอบข้างผมต่างตั้งหน้าตั้งตาชิงดีชิงเด่นกัน โดยไม่คำนึกถึงคนรอบข้างว่าจะได้รับผลกระทบอย่างไร ชีวิตของผมได้สัมผัสกับการหลงผิด และพลาดพลั้ง ได้มีโอกาสเห็นคนที่ศีลสมบูรณ์และศีลด่างพร่อย คนที่มีศีลสมบูรณ์จะมีชีวิตที่สดใด ส่วนคนที่มีศีลด่างพร่อยก็จะมีชีวิตที่ขุ่นมัว
sdfsdf