DATAS SEGMENT
w dw 0
keybuf db 255
db 0
db 255 dup(0) ;定義鍵盤輸入需要的緩沖區
DATAS ENDS
STACKS SEGMENT
db 200 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov dx,offset keybuf ;用0a號功能,輸入一個字符串
mov ah,0ah ;用回車結束
int 21h
mov dl,0ah ;再進行換行,以便在下一行顯示轉換后的字符串
mov ah,2
int 21h
; push ax
; push dx
; mov dl,cl
; mov ah,02
; int 21h
; pop dx
; pop ax
mov bx,offset keybuf+1 ;取出字符串的字符個數,作為循環的次數
mov cl,[bx]
mov ch,0
mov ax,0
again:
inc bx
mov ax,[w]
push bx
mov bx,16
mul bx
pop bx ;是小寫字母,則轉換為大寫字母
mov [w],ax
mov dl,[bx] ;取出一個字符,
cmp dl,'9'
jbe lab1
cmp dl,'F'
jbe lab2
sub dl,32
lab2: sub dl ,07h
lab1: sub dl,30h
add [w],dx
loop again
mov ax,[w]
mov bx,-1
push bx
mov bx,10
lab3 :mov dx,0
div bx
push dx
cmp ax,0
jnz lab3
lab5: pop dx
cmp dx,-1
jz lab4
add dl,30h
mov ah,02
int 21h
jmp lab5 ;循環,處理完整個字符串
lab4: MOV AH,4CH
INT 21H
CODES ENDS
END START
標簽:
匯編
上傳時間:
2015-04-02
上傳用戶:wcc0310
實驗源代碼
//Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數 i: "); scanf("%d",&k);
四川大學實驗報告 printf("請輸入矩陣的列數 j: "); scanf("%d",&n); warshall(k,n); }
標簽:
warshall
離散
實驗
上傳時間:
2016-06-27
上傳用戶:梁雪文以