บทที่ 8 : การประกาศข้อมูล

12
204221 ออออออออออออออออออออออออออออออออออออออ ออออออออออออออออออออออออออ ออออออออออออออออออออออ อออออออ อออออออออออออ ออออออออออ ออออออออออ อออออ 8 : อออ ออออออออออออ • อออออออออออออออออ ออออออ • ออออออออออออออออ • อออออออออออออออ อออออออออออออออออออออ อออออออออ DOS อออออออ 09h อออ 0Ah

Upload: logan-espinoza

Post on 01-Jan-2016

17 views

Category:

Documents


1 download

DESCRIPTION

บทที่ 8 : การประกาศข้อมูล. รูปแบบในการประกาศข้อมูล การอ้างใช้ข้อมูล การประกาศข้อมูลสำหรับการเรียกใช้งานบริการของ DOS หมายเลข 09h และ 0Ah. i :. j :. ch :. การประกาศข้อมูลหรือตัวแปร. ข้อมูลที่โปรแกรมใช้ และ ตัวแปรต่าง ๆ ที่อยู่ในหน่วยความจำ เป็นสิ่งเดียวกัน. การประกาศข้อมูล = - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

บทท�+ 8 : การประกาศข้-อม.ล

• ร.ปแบบใน์การประกาศข้-อม.ล• การอ-างใช-ข้-อม.ล• การประกาศข้-อม.ลส0าหร�บการเร�ยก

ใช-งาน์บร�การข้อง DOS หมายเลข้09h และ 0Ah

Page 2: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การประกาศข้-อม.ลหร$อต�วแปร

• ข้-อม.ลท�+โปรแกรมใช- และ ต�วแปรต#าง ๆ ท�+อย.#ใน์หน์#วยค์วามจิ0า เป3น์ส�+งเดี�ยวก�น์.

• การประกาศข้�อมู�ล = – การระบ"ให- assembler จิองเน์$�อท�+ใน์

หน์#วยค์วามจิ0าไว-ใช-ส0าหร�บการเก6บข้-อม.ล– และต��งช$+อให-ก�บหน์#วยค์วามจิ0าต0าแหน์#ง

น์��น์ (สร-างเลเบล)

• ต�วอย#างการประกาศต�วแปรแบบเลข้จิ0าน์วน์เต6ม 16 บ�ต 2 ต�ว (i, j) และอ�กข้ระ 1 ไบต� (ch)

i :

j :

ch :

จิะเป3น์การจิองเน์$�อท�+ใน์หน์#วยค์วามจิ0าข้น์าดี 5 ไบต� โดียจิะม�เลเบล i j และ ch ช��ต0าแหน์#งดี�งร.ป

Page 3: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

ค์0าส�+งเท�ยมส0าหร�บการจิองเน์$�อท�+ใน์หน์#วยค์วามจิ0า

• เราใช-ค์0าส�+งเท�ยมใน์การระบ"ก�บassembler ว#าจิะต-องการหน์#วยค์วามจิ0าข้น์าดีหน์#วยละเท#าใดี.

• ค์0าส�+งต#าง ๆ

ระบ"ข้น์าดีข้องหน์#วยย#อยข้องการจิองหน์#วยค์วามจิ0า

• ต�วอย#างข้องการจิองหน์#วยค์วามจิ0า

DBDWDDDQDT

Define ByteDefine WordDefine DoublewordDefine QuadwordDefine Tenbytes

dseg segmentdata1 db 1,?data2 dw 1,2data3 db ’Hi’,10,13data4 dd 1234hdseg ends

Page 4: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การจิ�ดีเร�ยงค์#าใน์หน์#วยค์วามจิ0า

01h

?01h

00h

02h

00h

48h

69h

0Ah

0Dh

34h

12h

00h

00h

dseg : 000000010002000300040005

0006000700080009000A000B000C000D

db 1,?data1data1

data2data2

data3data3

data4data4

dw 1,2

db ’Hi’,10,13

dd 1234h

ส�งเกตว#าใน์การประกาศ data1 ไบต�ท�+สอง เราใช- ‘เค์ร$+องหมาย ?’ ใน์การระบ"การจิองเน์$�อท�+หน์#วย

ค์วามจิ0าโดียไมู�ระบุ�ค่�าข้องข้-อม.ล.

?

Page 5: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การระบ"ค์#าข้องหน์#วยค์วามจิ0า

ท�+ม�การซ0�า• เราใช-ค์0าส�+งเท�ยม dup ใน์การระบ"ค์#าเร�+ม

ต-น์ท�+ม�การซ0�าก�น์หลายช"ดี.• ร.ปแบบ

• ต�วอย#างจิ0าน์วน์ซ0�า dup (ค์#าท�+ซ0�า)

data7 db 10 dup (0)data8 db 5 dup (4 dup (5))data9 db 4 dup (1, 2, 3 dup (4))data10 db 20 dup (?)

0 0 0 0 05 5 5 5

5

05

1 2 4 4 4 1 2 4 4 41 2 4 4 4 1 2 4 4 4? ? ? ?

??

data7

data9

data8

data10 ซ0�าซ0�า

ซ0�าซ0�าซ0�า

Page 6: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การอ-างใช-ข้-อม.ลใน์หน์#วยค์วามจิ0า

• เราสามารถใช-เลเบลท�+ประกาศแทน์ต0าแหน์#งข้องม.ลใน์หน์#วยค์วามจิ0าไดี-ท�น์ท�. เราย�งสามารถอ-างหน์#วยค์วามจิ0าโดียค์�ดีส�มพิ�ทธ์�ก�บต0าแหน์#งข้อง เลเบลไดี-.

mov al,data1mov bx,data2mov data1,0mov [data2+2],1123hmov data1[1],22hmov cl,byte ptr data4

00h22h01h

00h

23h11h48h

69h

0Ah

0Dh

34h

12h

00h

00h

data1

data2

data3

data4

AL = 01hBX = 01hCL = 34h

ส�งเกตว#าใน์การก0าหน์ดีค์#า ค์งท�+ให-ก�บหน์#วยค์วามจิ0าน์��น์

เราไม#ต-องระบ"ข้น์าดีอ�ก เพิราะเราระบ"ตอน์ประกาศแล-ว. แต#ไม#จิ0าเป3น์ต-องใช-ข้-อม.ลตาม

ข้น์าดีท�+ระบ"เสมอไป โดียเราสามารถระบ"ข้น์าดีก0าก�บไปดี-วย.

Page 7: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การอ-างใช-ข้-อม.ลใน์หน์#วยค์วามจิ0า

• การอ-างต0าแหน์#งข้องข้-อม.ล– ใช-ค์0าส�+งเท�ยม OFFSET

mov ax,data2 ;ค่�าในหน�วยค่วามูจำ�าmov bx,offset data2 ; ออฟเซ็�ตข้องข้�อมู�ล

• การใช-ร�จิ�สเตอร� BX ใน์การอ-างต0าแหน์#งข้-อม.ล

mov bx,offset data7 ; ออฟเซ็�ตข้องข้�อมู�ลmov byte ptr [bx],10mov byte ptr [bx+1],20

mov bx,2mov data7[bx],30mov data7[bx+1],40

•ใน์โปรแกรมช#วงแรก BX เก6บออฟเซ6ตข้อง DATA7 ไว- จิากน์��น์เราอ-างใช-หน์#วยค์วามจิ0าเท�ยบก�บ BX. •ใน์ส#วน์หล�งเราอ-างใช-หน์#วยค์วามจิ0าเท�ยบก�บ DATA7 และค์#าใน์BX.

Page 8: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

ต�วอย#าง

dseg segmentdata1 db 1,2,3data2 db 3 dup (?)data3 dw 5,6dseg ends

01

02

03

?

?

?

05

00

06

00

DS:0000

DS:0001

DS:0003

DS:0004

DS:0005

DS:0006

DS:0007

DS:0008

DS:0009

DS:000A

จิากการประกาศข้-อม.ลต#อไปน์��

mov al,data1• AL = 01h

mov bx,offset data1• BX = 0000h

mov cx,data3[2]• CX = 0006h

mov bx,offset data2mov [bx],cx

• [DS:0004] = 06h• [DS:0005] = 00h

Page 9: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การประกาศข้-อม.ลส0าหร�บ การใช-บร�การหมายเลข้

09h ข้อง DOSบุร การหมูายเลข้ 09h : แสดงผล

ข้�อค่วามู• ร�บข้-อม.ลผ#าน์ร�จิ�สเตอร�ดี�งน์��

– AH = 09h– DS : DX = ต0าแหน์#งข้องข้-อค์วามท�+

จิะแสดีง โดียข้-อค์วามน์��ต-องจิบดี-วยเค์ร$+องหมาย ‘$’

• เราสามารถประกาศข้-อม.ลไดี-ดี�งน์��

โดียรห�ส 10 (Line Feed) และ 13 (Carriage Return) เป3น์รห�สท�+ส� +งให-ข้:�น์บรรท�ดีใหม#.

• การส�+งพิ�มพิ�

dseg segmentmsg db ’hello’,10,13,’$’dseg ends

mov ah,9mov dx,offset msgint 21h

Page 10: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การประกาศข้-อม.ลส0าหร�บ การใช-บร�การหมายเลข้

0Ah ข้อง DOSบุร การหมูายเลข้ 0Ah : อ�าน

ข้�อค่วามู• ร�บข้-อม.ลผ#าน์ร�จิ�สเตอร�ดี�งน์��

– AH = 09h– DS : DX = ต0าแหน์#งข้องหน์#วย

ค์วามจิ0าท�+จิะใช-เก6บข้-อม.ล (บ�ฟเฟอร�) โดียท�+จิะต-องม�ร.ปแบบดี�งน์��

• ไบุต%ที่'( 1 : ค์วามยาวข้องข้-อม.ลท��งหมดี (ต-องเผ$+อท�+ว#างไว- 1 ไบต�ส0าหร�บอ�กข้ระข้:�น์บรรท�ดีใหม#)

• ไบุต%ที่'( 2 : DOS จิะใส#ค์วามยาวข้-อม.ลจิร�งลงท�+หน์#วยค์วามจิ0าต0าแหน์#งน์��

• ไบุต%ต�อ ๆ ไป : ข้-อค์วามท�+อ#าน์ไดี-. เราต-องจิองเน์$�อท�+หน์#วยค์วามจิ0าให-เพิ�ยงพิอ

• ต�วอย#างข้องการประกาศข้-อม.ลเพิ$+อให-เข้�ยน์โปรแกรมไดี-สะดีวก

.datamaxlen db 30msglen db ?msg db 30 dup (?)

Page 11: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

การประกาศข้-อม.ลส0าหร�บ การใช-บร�การหมายเลข้

0Ah ข้อง DOS

mov ah,0Ahmov dx,offset maxlenint 21h

บ�ฟเฟอร�

msglen

maxlen

msg

ใน์การส#งแอดีเดีรสข้องบ�ฟเฟอร�ไปย�ง DOS เราจิะส#งต0าแหน์#งข้อง maxlen ไปให- เพิ$+อให-ร.ปแบบข้องข้-อม.ลตรงตามข้-อก0าหน์ดี.• การเร�ยกใช-บร�การอ#าน์ข้-อค์วาม

• msglen จิะเก6บค์วามยาวข้องข้-อค์วามท�+อ#าน์ไดี-.• อ�กข้ระต#างใน์ข้-อค์วามจิะถ.กเก6บใน์หน์#วยค์วามจิ0าต��งแต# msg เป3น์ต-น์ไป.

Page 12: บทที่ 8 : การประกาศข้อมูล

204221 องค์�ประกอบค์อมพิ�วเตอร�และภาษาแอสเซมบล�� ภาค์ว�ชา

ว�ศวกรรมค์อมพิ�วเตอร� มหาว�ทยาล�ยเกษตรศาสตร�ส�ณฑิ�ต� พิ�ชรร" #งเร$อง

จิ�ตร�ท�ศน์� ฝั(กเจิร�ญผล

ต�วอย#างโปรแกรม• โปรแกรมท�+ร �บข้-อค์วามจิากผ.-ใช-

แล-วแสดีงข้-อค์วามน์��น์ออกมา.

• ร�บข้-อค์วาม– บร�การหมายเลข้ 0Ah

• แสดีงข้-อค์วาม– บร�การหมายเลข้ 09h

• ‘ข้-อค์วามต-องจิบดี-วย $’