Monday, 13 June 2016

MATERI PER 10 ASEMBLY

Instruksi Geser Kanan (SHR) melakukan penggeseran bit-bit ke kanan pada operand tujuan. Format untuk penggeseran tunggal adalah :

SHR operand tujuan,1

Sebuah 0 digeser ke dalam posisi MSB, dan bit paling kanan digeser ke dalam CF. Jika jumlah pergeseran adalah N, maka format instruksinya adalah:

SHR operand tujuan,CL

contoh
Buat Program yang meminta kepada user untuk mengetikkan sebuah karakter dan mencetak kode ASCII karakter tersebut ke dalam heksadesimal pada baris berikutnya.
Ulangi proses ini hingga user menekan tombol carriage return (tombol enter)

contoh hasil eksekusi:
KETIKKAN SEBUAH KARAKTER : Z
KODE ASCII DALAM HEKSADESIMAL ADALAH : 5A

Listing sebagai berikut:
#make_COM#

; COM file is loaded at CS:0100h
ORG 100h

;konversi karakter ke kode ASCII

;9.2
jmp start
a dw ?
p1 db 'Ketik Sebuah Karakter :   $'
p2 db 0dh,0ah, 'Kode ASCII dalam Heksadesimal adalah : $'
p3 db 13,10, '$'
start:
   mov cx,2
mov ah,9
lea dx,p1
int 21h
  mov ah,1
  int 21h
cmp al,0dh ;cr?
JE stop
mov bl,al
mov ah,9
lea dx,p2
int 21h
lagi:
   mov dl,bl
   mov a,cx ;atau push cx
   mov cl,4
   shr dl,cl
cmp dl,10
jnl else
add dl,30h
jmp keluar
else:
  add dl,37h; ubah biner ke karakter ascii
keluar:
   mov ah,2
   int 21h
   rol bx,cl
   mov cx,a; atau pop cx
   loop lagi
mov ah,9
lea dx,p3
int 21h
jmp start
stop:
ret
;Syahrul.bhs assembly

No comments:

Post a Comment