当前位置:编程学习 > 汇编语言 >>

从键盘上输入一个十进制无符号整数,将它用八进制格式输出(汇编语言)

答案:;从键盘上输入一个十进制无符号整数,将它用八进制格式输出(汇编语言) ;用MASM 5.0编译通过 data segment mess db ' (10) >>===>> (8) $' BUF DW 0 ;每次输入的数暂存 data ends code segment assume cs:code, ds:data main proc far start: push ds xor ax,ax push ax mov ax,data mov ds,ax ;------------------------- MOV AX,0 MOV BUF,AX IN_1: MOV AH,08 INT 21H ;输入在AL中 CMP AL,'0' JB NO_09 CMP AL,'9' JA NO_09 MOV AH,2 ;输入的是0-9,显示之 MOV DL,AL INT 21H SUB AL,30H ;将输入在AL中的ASCII码转成数字 MOV AH,0 PUSH AX MOV BX,BUF MOV AX,10 MUL BX ;BUF * 10 结果在DX:AX中 (DX=0) POP BX ADD AX,BX ;AX <== BUF * 10 + 新输入的1位数字 MOV BUF,AX ;保存 JMP IN_1 ;输入该数字的下一位 NO_09: ;输入的非0-9 CMP AL,0DH ;是回车符吗? JE YES_0D ;是转 JMP IN_1 ;不是则输入该数字的下一位 YES_0D: ;是回车符 mov ah,9 mov dx,offset mess int 21h mov ax,buf MOV CX,0 DIV_1: MOV DX,0 MOV SI,8 DIV SI ADD DL,30H INC CX PUSH DX CMP AX,0 JNZ DIV_1 DISP_1: MOV AH,2 POP DX INT 21H LOOP DISP_1 MOV AH,4CH INT 21H MAIN ENDP ;================== code ends end start

上一个:如何用汇编语言实现闪烁文字的效果?
下一个:89c51 实现定时器 汇编语言 定时20秒

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,