Senin, 05 Agustus 2013

Pembuatan Program di Bahasa Mesin (TASM)



.MODEL SMALL
.CODE
ORG 100h

MODEL SMALL digunakan untuk memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita, pada program ini kita menggunakan SMALL yaitu data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB.
.CODE digunakan untuk memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code Segment-nya disini. Code segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan.
ORG 100h digunakan untuk memberitahukan assembler supaya program pada saat
dijalankan(diload ke memory) ditaruh mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS untuk mengontrol jalannya program tersebut.
TData :
JMP   Proses
T_ASCII    DB 13,10,'Ini adalah tombol ASCII : $'
T_Extended DB 13,10,'Ini adalah tombol Extended : $'

            Blok program dari Tdata , Memanggil fungsi Proses lalu di berikan sebuah tanda yaitu T_ASCII    DB 13,10,'Ini adalah tombol ASCII : $' dan T_Extended DB 13,10,'Ini adalah tombol Extended : $'

Proses : 
MOV  AH,0               
INT  16h           
PUSH AX                  
CMP  AL,00       
JE   Extended            

            Di sini adalah fungsi dari proses yaitu MOV Ah,0 mengisi register servis dengan 0 ,INT 16h Melakasanakn perintah , PUSH AX menyimpan hasil pembicaraan pada suatu STACK , CMP  AL,00 sebuah kondisi dan JE   Extended untuk melompat.


ASCII: 
LEA  DX,T_ASCII  
MOV  AH,09         
INT  21h          
POP  AX            
MOV  DL,AL            
MOV  AH,2       
INT  21h      
CMP  AL,'Q'      
JE   exit           
CMP  AL,'q'      
JE   exit           
JMP  Proses              
    
            Di sini adalah merupakan fungsi dari ASCII  T_ASCII. Yang semua intinya adalah mencetak sebuah kode ASCII dan sebuah kondisi. Pada CMP adalah untuk sebuah kondisi di mana jika benar maka akan melompat dengan adanya JE.
Extended: 
          LEA  DX,T_Extended            
          MOV  AH,09          
          INT  21h             
          JMP  Proses

            Di sini adalah merupakan fungsi dari Extended.Yang semua intinya adalah mencetak sebuah kode Extended , Di mana MOV AH,09  masuk ke servis 9 , INT 21h adalah mencetak lalu lompat ke fungsi Proses.

exit:
INT  20h          
END       TData

            Di sini adalah fungsi dari exit. INT 20h Kembali ke CMD/DOS lalu END Tdata mengakhiri program.

OUTPUT PROGRAM


RANGKUMAN
Register AX merupakan register aritmatik, karena register ini selalu dipakai dalam operasi penambahan, pengurangan, perkalian dan pembagian.
Setiap register general purpose mempunyai Register Low dan Register High, maka untuk AX register low-nya adalah AL dan register high-nya adalah AH.

Tidak ada komentar:

Posting Komentar