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
#include <stdlib.h>
#include<stdio.h>
#include <malloc.h>
#define stack_init_size 100
#define stackincrement 10
typedef struct sqstack
{
int *base;
int *top;
int stacksize;
} sqstack;
int StackInit(sqstack *s)
{
s->base=(int *)malloc(stack_init_size *sizeof(int));
if(!s->base)
return 0;
s->top=s->base;
s->stacksize=stack_init_size;
return 1;
}
int PUSH(sqstack *s,int e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base)
return 0;
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}
*(s->top++)=e;
return e;
}
int Pop(sqstack *s,int e)
{
if(s->top==s->base)
return 0;
e=*--s->top;
return e;
}
int stackempty(sqstack *s)
{
if(s->top==s->base)
{
return 1;
}
else
{
return 0;
}
}
int conversion(sqstack *s)
{
int n,e=0,flag=0;
printf("輸入要轉化的十進制數:\n");
scanf("%d",&n);
printf("要轉化為多少進制:\n"); scanf("%d",&flag);
printf("將十進制數%d 轉化為%d 進制是:\n",n,flag);
while(n)
{
PUSH(s,n%flag);
n=n/flag;
}
while(!stackempty(s))
{
e=Pop(s,e);
switch(e)
{
case 10: printf("A");
break;
case 11: printf("B");
break;
case 12: printf("C"); break;
case 13: printf("D"); break;
case 14: printf("E"); break;
case 15: printf("F"); break;
default: printf("%d",e); }
}
printf("\n");
return 0;
}
int main()
{
sqstack s;
StackInit(&s);
conversion(&s);
return 0;
}
標簽:
整數
棧
基本操作
十進制
轉化
進制
上傳時間:
2016-12-08
上傳用戶:愛你198
At present, there is a strong worldwide PUSH toward bringing fiber closer to indi-
vidual homes and businesses. Fiber-to-the-Home/Business (FTTH/B) or close to it
networks are poised to become the next major success story for optical fiber com-
munications. In fact, FTTH connections are currently experiencing double-digit or
even higher growth rates, e.g., in the United States the annual growth rate was 112%
between September 2006 and September 2007, and their presence can add value of
U.S. $4,000–15,000 to the selling price of a home.
標簽:
Technologies
Broadband
Networks
Access
上傳時間:
2020-05-26
上傳用戶:shancjb