当前位置:文档之家› 汇编语言小程序

汇编语言小程序

16进制转化为10进制STACK SEGMENT STACK'STACK'
DW100H DUP(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
KEYBUFFER DB100
;DB ?
;DB 100 DUP(?)
DECIMAL DB 5 DUP(?)
STRING1 DB'PLEASE INPUT DECIMAL DATA:$' DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,CS:STACK START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SS,AX
LEA SP,TOP
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV AH,0AH
LEA DX,KEYBUFFER
;MOV AX,23456
INT 21H
;LEA SI,KEYBUFFER
MOV AX,DX
LEA DI,DECIMAL
CALL DISPAX
MOV AH,4CH
MOV AL,0
INT 21H
DISPAX PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
LEA DI,DECIMAL
CALL TRANS16TO10
MOV CX,5
LEA DI,DECIMAL+4
MOV AH,2
DISPAXD:
MOV DL,[DI]
ADD DL,30H
DEC DI
INT 21H
LOOP DISPAXD
POP DI
POP DX
POP CX
POP BX
POP AX
RET
DISPAX ENDP
TRANS16TO10 PROC NEAR PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV BX,10
MOV CX,5
LOOP1:
XOR DX,DX
DIV BX
MOV[DI],DX
INC DI
LOOP LOOP1
LEA DX,DECIMAL
MOV AH,09H
INT 21H
POP DI
POP DX
POP CX
POP BX
POP AX
RET
TRANS16TO10 ENDP
CODE ENDS
END START
10进制转化为16进制STACK SEGMENT STACK'STACK'
DW100H DUP(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
KEYBUFFER DB100
DB?
DB 100 DUP(?)
STRING1 DB'please input decimal data: $' DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,STACK
MOV SS,AX
LEA SP,TOP
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV AH,0AH
LEA DX,KEYBUFFER
INT 21H
LEA SI,KEYBUFFER+1
CALL TRANS10TO16
CALL DISPCR
CALL DISPAX
CALL DISPCR
MOV AX,BX
CALL DISPAX
MOV AH,4CH
MOV AL,0
INT 21H
DISPAL PROC NEAR
PUSH AX
PUSH CX
PUSH DX
PUSH AX
MOV CL,4
SHR AL,CL
CALL CHANG
MOV AH,02
MOV DL,AL
INT 21H
POP AX
AND AL,0FH
CALL CHANG
MOV AH,02
MOV DL,AL
INT 21H
POP DX
POP CX
POP AX
RET
DISPAL ENDP CHANG PROC NEAR CMP AL,10
JNGE CHANG1
ADD AL,7 CHANG1:
ADD AL,30H
RET
CHANG ENDP DISPAX PROC NEAR XCHG AL,AH
CALL DISPAL
XCHG AH,AL
CALL DISPAL
RET
DISPAX ENDP DISPCR PROC NEAR PUSH AX
PUSH DX
MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,2
MOV DL,0DH
INT 21H
POP DX
POP AX
RET
DISPCR ENDP
TRANS10TO16 PROC NEAR PUSH CX
PUSH DX
PUSH SI
XOR AX,AX
XOR CX,CX
MOV CL,[SI]
INC SI
MOV AL,[SI]
INC SI
SUB AL,30H
DEC CX
JCXZ TRANSF2
MOV BX,10
TRANSF1:
MUL BX
JC TRANSF_ERR
MOV DL,[SI]
INC SI
SUB DL,30H
ADD AL,DL
ADC AH,0
JC TRANSF_ERR
LOOP TRANSF1
MOV BX,0
TRANSF2:
JMP TRANSF_OK TRANSF_ERR:
MOV BX,-1
TRANSF_OK:
POP SI
POP DX
POP CX
RET
TRANS10TO16 ENDP
CODE ENDS
END START
冒泡排序STACKS SEGMENT
DW100H DUP(?)
TOP LABEL WORD
;此处输入堆栈段代码
STACKS ENDS
DATAS SEGMENT
KEYBUFFER DB10
DB?
DB 100 DUP(?)
STRING1 DB'PLEASE INPUT DECIMAL DATA: $' ;此处输入数据段代码
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
MOV AX,STACKS
MOV SS,AX
LEA SP,TOP
LEA DX,STRING1
MOV AH,09H
INT 21H
MOV AH,0AH
LEA DX,KEYBUFFER
INT 21H
MOV CL,KEYBUFFER
DEC CX
LEA SI,KEYBUFFER+2
ADD SI,CX
LP1:
PUSH CX
PUSH SI
LP2:
MOV AL,[SI]
CMP AL,[SI-1]
JAE NOXCHG
XCHG AL,[SI-1]
MOV [SI],AL NOXCHG:
DEC SI
LOOP LP2
POP SI
POP CX
LOOP LP1
LEA DX,KEYBUFFER+1
MOV AH,09H
INT 21H
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START。

相关主题