วันพฤหัสบดีที่ 26 สิงหาคม พ.ศ. 2553
Assemble-com: lab09 onvert-num-word2char
Assemble-com: lab09 onvert-num-word2char: "Lab09 ------- ----------------------------------------------------------------- โจทย์ ถ้ามีข้อมูลชนิดเลขจำนวนเต็ม 1 เวิร์ด (2 ไบท์-16 ..."
lab09 onvert-num-word2char
Lab09
-------
-----------------------------------------------------------------
โจทย์ ถ้ามีข้อมูลชนิดเลขจำนวนเต็ม 1 เวิร์ด (2 ไบท์-16 บิท) ที่ num
จงแสดงผลออกเป็นตัวเลขฐานสิบ 5 หลักที่เป็นค่าของ num
;convert num word to 5 chars string
.data
num word 0109h
OutStr byte 5 dup (20h)
byte '$'
.code
:
:
mov di,offset OutStr
mov cx,5
mov bx,10
mov ax,num
L2:
mov dx,0
div bx
add dl,30h
mov [di],dl
dec di
loop L2
;display OutStr
:
:
---> ตรวจสอบคำตอบ ผลที่แสดงบนจอต้องเป็น 0 0 2 5 6 <---
--------------------------------------------------------------------
ท้าทาย level 1: กำหนดค่า num1 และ num2 เป็นข้อมูลชนิดเวิร์ด
ให้คำนวณหาค่า num = num1+num2
ผลที่ได้แสดงบนจอ เช่น
num1 word 260d
num2 word 132d
num word ?
OutStr byte 5 dup (20h)
byte '$'
แสดงผลเป็น 3 9 2 หรือ 0 0 3 9 2
ท้าทาย level 2: กำหนดค่า num1 และ num2 เป็นข้อมูลชนิดเวิร์ด
อ่านข้อมูลจากแป้นพิมพ์ 3 หลักเป็นจำนวนที่ 1 convert เป็นค่า num1 เช่น
ป้อนข้อมูลเป็น '1' '2' '0' ได้ค่าเป็น 120d
อ่านข้อมูลจากแป้นพิมพ์ 3 หลักเป็นจำนวนที่ 2 convert เป็นค่า num2 เช่น
ป้อนข้อมูลเป็น '0' '2' '5' ได้ค่าเป็น 25d
ให้คำนวณหาค่า num = num1+num2
ผลที่ได้แสดงบนจอ เช่น
num1 word ?
num2 word ?
num word ?
แสดงผลเป็น 1 4 5 หรือ 0 0 1 4 5
***การ convert จาก input string ให้เป็นเลขจำนวน (convert to num)
ดูได้จากเว็บ 172.17.2.5 ***
หมายเหตุ คำสั่งคูณ MUL BL หมายถึงคูณค่าใน AX ด้วย BL
ผลลัพธ์เก็บไว้ที่ AX
คำสั่งคูณ MUL BX หมายถึงคูณค่าใน AX ด้วย BX
ผลลัพธ์เก็บไว้ที่ AX เมื่อ CF=0(หรือ DX:AX เมื่อ CF=1)
คำสั่งหาร DIV BX หมายถึงหารค่าใน AX ด้วย BX
ผลลัพธ์เก็บไว้ที่ AX เศษเก็บไว้ที่ DL
คำสั่งหาร DIV BL หมายถึงหารค่าใน AX ด้วย BL
ผลลัพธ์เก็บไว้ที่ AL เศษเก็บไว้ที่ AH
ตัวอย่างโปรแกรม
-------------------------------------------------------------------------------
.model small
.data
msg1 byte 0ah,0dh,"input string num1:"
instr1 byte 4 dup (20h)
byte 0ah,0dh,"$"
msg2 byte 0ah,0dh,"input string num2:"
instr2 byte 4 dup (20h)
byte 0ah,0dh,"$"
num1 word 0
num2 word 0
num word 0
result byte "result is "
outstr byte 5 dup (20h)
byte "$"
.code
main proc
mov ax,@data
mov ds,ax
mov di,offset instr1
call GetInp
mov dx, offset msg1
call DispOut
:
:
;convert to num word
:
mov di,offset instr2
call GetInp
mov dx, offset msg2
call DispOut
:
:
;convert to num word
:
mov ax,num1
add ax,num2
mov num,ax
call ConvOutstr
mov dx,offset result
call DispOut
mov ax,4c00h
int 21h
main endp
;----------------------------------------------------------------
GetInp proc ;get 4 digit input from k/b
mov cx,4
L1:
mov ah,1
int 21h
mov [di],al
inc di
loop L1
ret
GetInp endp
;-----------------------------------------------------------------
ConvertNum proc ;convert input string to Num word
:
:
ret
ConvertNum endp
;-----------------------------------------------------------------
ConvOutstr proc ;convert from num to output string
mov di,offset outstr
mov cx,5
mov bx,10
mov ax,num
L2:
mov dx,0
div bx
add dl,30h
mov [di],dl
dec di
loop L2
ret
ConvOutstr endp
;-----------------------------------------------------------------
DispOut proc ;display output string
mov ah,9
int 21h
ret
DispOut endp
;-----------------------------------------------------------------
end
-------
-----------------------------------------------------------------
โจทย์ ถ้ามีข้อมูลชนิดเลขจำนวนเต็ม 1 เวิร์ด (2 ไบท์-16 บิท) ที่ num
จงแสดงผลออกเป็นตัวเลขฐานสิบ 5 หลักที่เป็นค่าของ num
;convert num word to 5 chars string
.data
num word 0109h
OutStr byte 5 dup (20h)
byte '$'
.code
:
:
mov di,offset OutStr
mov cx,5
mov bx,10
mov ax,num
L2:
mov dx,0
div bx
add dl,30h
mov [di],dl
dec di
loop L2
;display OutStr
:
:
---> ตรวจสอบคำตอบ ผลที่แสดงบนจอต้องเป็น 0 0 2 5 6 <---
--------------------------------------------------------------------
ท้าทาย level 1: กำหนดค่า num1 และ num2 เป็นข้อมูลชนิดเวิร์ด
ให้คำนวณหาค่า num = num1+num2
ผลที่ได้แสดงบนจอ เช่น
num1 word 260d
num2 word 132d
num word ?
OutStr byte 5 dup (20h)
byte '$'
แสดงผลเป็น 3 9 2 หรือ 0 0 3 9 2
ท้าทาย level 2: กำหนดค่า num1 และ num2 เป็นข้อมูลชนิดเวิร์ด
อ่านข้อมูลจากแป้นพิมพ์ 3 หลักเป็นจำนวนที่ 1 convert เป็นค่า num1 เช่น
ป้อนข้อมูลเป็น '1' '2' '0' ได้ค่าเป็น 120d
อ่านข้อมูลจากแป้นพิมพ์ 3 หลักเป็นจำนวนที่ 2 convert เป็นค่า num2 เช่น
ป้อนข้อมูลเป็น '0' '2' '5' ได้ค่าเป็น 25d
ให้คำนวณหาค่า num = num1+num2
ผลที่ได้แสดงบนจอ เช่น
num1 word ?
num2 word ?
num word ?
แสดงผลเป็น 1 4 5 หรือ 0 0 1 4 5
***การ convert จาก input string ให้เป็นเลขจำนวน (convert to num)
ดูได้จากเว็บ 172.17.2.5 ***
หมายเหตุ คำสั่งคูณ MUL BL หมายถึงคูณค่าใน AX ด้วย BL
ผลลัพธ์เก็บไว้ที่ AX
คำสั่งคูณ MUL BX หมายถึงคูณค่าใน AX ด้วย BX
ผลลัพธ์เก็บไว้ที่ AX เมื่อ CF=0(หรือ DX:AX เมื่อ CF=1)
คำสั่งหาร DIV BX หมายถึงหารค่าใน AX ด้วย BX
ผลลัพธ์เก็บไว้ที่ AX เศษเก็บไว้ที่ DL
คำสั่งหาร DIV BL หมายถึงหารค่าใน AX ด้วย BL
ผลลัพธ์เก็บไว้ที่ AL เศษเก็บไว้ที่ AH
ตัวอย่างโปรแกรม
-------------------------------------------------------------------------------
.model small
.data
msg1 byte 0ah,0dh,"input string num1:"
instr1 byte 4 dup (20h)
byte 0ah,0dh,"$"
msg2 byte 0ah,0dh,"input string num2:"
instr2 byte 4 dup (20h)
byte 0ah,0dh,"$"
num1 word 0
num2 word 0
num word 0
result byte "result is "
outstr byte 5 dup (20h)
byte "$"
.code
main proc
mov ax,@data
mov ds,ax
mov di,offset instr1
call GetInp
mov dx, offset msg1
call DispOut
:
:
;convert to num word
:
mov di,offset instr2
call GetInp
mov dx, offset msg2
call DispOut
:
:
;convert to num word
:
mov ax,num1
add ax,num2
mov num,ax
call ConvOutstr
mov dx,offset result
call DispOut
mov ax,4c00h
int 21h
main endp
;----------------------------------------------------------------
GetInp proc ;get 4 digit input from k/b
mov cx,4
L1:
mov ah,1
int 21h
mov [di],al
inc di
loop L1
ret
GetInp endp
;-----------------------------------------------------------------
ConvertNum proc ;convert input string to Num word
:
:
ret
ConvertNum endp
;-----------------------------------------------------------------
ConvOutstr proc ;convert from num to output string
mov di,offset outstr
mov cx,5
mov bx,10
mov ax,num
L2:
mov dx,0
div bx
add dl,30h
mov [di],dl
dec di
loop L2
ret
ConvOutstr endp
;-----------------------------------------------------------------
DispOut proc ;display output string
mov ah,9
int 21h
ret
DispOut endp
;-----------------------------------------------------------------
end
วันอังคารที่ 24 สิงหาคม พ.ศ. 2553
java
public class array {
private int x;
public void aArray(){
int[]array1 = new int[13];
int i=0;
int l=1;
for( i = 0; l<=12; i++){
array1[i]=2*l;
System.out.println(array1[i]);
l++;
}
}
public void triple(){
int[]array2 = new int[10];
for(int i=0;i<=9;i++){
array2[i] = i*i*i;
System.out.println(array2[i]);
}
}
public void sum1(){
int sum = 0;
int[]array1 = new int[13];
int i=0;
for( i = 1; i<=12; i++){
array1[i]=2*i;
sum = sum+array1[i];
}System.out.println("SUMARRAY1 :"+sum);
}
public void sum2(){
int sum =0;
int[]array2 = new int[10];
for(int i=0;i<=9;i++){
array2[i] = i*i*i;
sum = sum+array2[i];
}System.out.println("SUMARRAY2 :"+sum);
}
public void sumArray(){
int sumIndex =0;
int[]array1 = new int[10];
int []array2 = new int[10];
int i=0;
int j=1;
for( i = 0; i<=9; i++){
array1[j]=2*j;
array2[i]=i*i*i;
sumIndex = array1[j]+array2[i];
System.out.println(sumIndex);
j++;
}
}
public void Sort(){
int[]array={14,25,7,8,19};
int i=0;
int j =4;
int swarp = 0;
for(i=0;i<=2;i++){
swarp=array[i];
array[i]=array[j];
array[j]=swarp;
j--;
}
for(int swapp=0;swapp
System.out.print(array[swapp]+" ");
}
}
}
Main
public class mainArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
array a = new array();
//a.aArray();
//System.out.println();
//a.triple();
//a.sum1();
//a.sum2();
//a.sumArray();
a.Sort();
}
}
private int x;
public void aArray(){
int[]array1 = new int[13];
int i=0;
int l=1;
for( i = 0; l<=12; i++){
array1[i]=2*l;
System.out.println(array1[i]);
l++;
}
}
public void triple(){
int[]array2 = new int[10];
for(int i=0;i<=9;i++){
array2[i] = i*i*i;
System.out.println(array2[i]);
}
}
public void sum1(){
int sum = 0;
int[]array1 = new int[13];
int i=0;
for( i = 1; i<=12; i++){
array1[i]=2*i;
sum = sum+array1[i];
}System.out.println("SUMARRAY1 :"+sum);
}
public void sum2(){
int sum =0;
int[]array2 = new int[10];
for(int i=0;i<=9;i++){
array2[i] = i*i*i;
sum = sum+array2[i];
}System.out.println("SUMARRAY2 :"+sum);
}
public void sumArray(){
int sumIndex =0;
int[]array1 = new int[10];
int []array2 = new int[10];
int i=0;
int j=1;
for( i = 0; i<=9; i++){
array1[j]=2*j;
array2[i]=i*i*i;
sumIndex = array1[j]+array2[i];
System.out.println(sumIndex);
j++;
}
}
public void Sort(){
int[]array={14,25,7,8,19};
int i=0;
int j =4;
int swarp = 0;
for(i=0;i<=2;i++){
swarp=array[i];
array[i]=array[j];
array[j]=swarp;
j--;
}
for(int swapp=0;swapp
System.out.print(array[swapp]+" ");
}
}
}
Main
public class mainArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
array a = new array();
//a.aArray();
//System.out.println();
//a.triple();
//a.sum1();
//a.sum2();
//a.sumArray();
a.Sort();
}
}
สมัครสมาชิก:
ความคิดเห็น (Atom)
