一个汇编程序 5.数制转换 试编写一汇编语言程序,要求从键盘接收一个四位的十进制数,并在终端上显示

一个汇编程序5.数制转换试编写一汇编语言程序,要求从键盘接收一个四位的十进制数,并在终端上显示与它等值的二进制数。... 一个汇编程序
5.数制转换
试编写一汇编语言程序,要求从键盘接收一个四位的十进制数,并在终端上显示与它等值的二进制数。
展开
 我来答
做而论道
高能答主

推荐于2017-12-16 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
;从键盘接收一个四位的十进制数,并在终端上显示与它等值的二进制数
;=============================================
DATA SEGMENT
STR1 DB 'INPUT A NUM: $'
HEX DB 5 ;计划输入的字符个数(含回车符)
NNN DB 0 ;存放实际输入的字符个数
DB 5 DUP(?)
BIN DW ? ;输入数字的二进制形式的存放单元
ERR DB 0AH, 0DH, ' ERROR !'
DB 0AH, 0DH, ' I HAVE NO TIME TO PLAY WITH YOU ! $'
STR2 DB 13, 10, 'BINARY IS: $'
DATA ENDS
;--------------------------------------------
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
;--------------------------------------------
CODE SEGMENT
ASSUME CS:CODE, SS:STACK, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV AX, STACK
MOV SS, AX
LEA DX, STR1 ;'INPUT A NUM'
MOV AH, 9 ;显示字符串
INT 21H
LEA DX, HEX
MOV AH, 10 ;等着输入四位数
INT 21H
;---------------------------------------
;下面进行转换
MOV BIN, 0 ;先把二进制数字单元清零
LEA SI, HEX + 2;取输入字符串的首地址
MOV CH, NNN ;取输入字符的个数,用来控制循环处理的次数
CONV:
MOV BL, [SI] ;取来一个字符
CMP BL, 0DH ;和回车符进行比较
JZ END0 ;是, 即结束
CMP BL, '0'
JB ERROR ;小于'0'转移
CMP BL, '9'
JA ERROR ;大于'9'转移
SUB BL, 30H ;ASC-->BIN
;---------------------------------------
MOV BH, 0 ;弄成16位数
PUSH CX
MOV AX, BIN ;把原来的数字乘以10
MOV CX, 10
MUL CX
ADD AX, BX ;加上新输入的
MOV BIN, AX ;存结果,这就是二进制数
INC SI
POP CX
DEC CH ;处理次数减一
JNZ CONV ;非零转移
;---------------------------------------
DISP:
LEA DX, STR2 ;'BINARY IS: $'
MOV AH, 9 ;显示字符串
INT 21H
;---------------------------------------
MOV AX, BIN ;取来数字
MOV CX, 16 ;显示16位数
DDDD:
MOV DL, '0' ;先计划显示0
TEST AX, 8000H ;测试最高位
JZ DDD1
INC DL ;非0就显示1
DDD1:
PUSH AX
MOV AH, 2 ;显示DL中的ASCII码
INT 21H
POP AX
SHL AX, 1 ;左移
LOOP DDDD ;CX-1,非零转移
JMP END0 ;16位显示完毕,转到结束
;---------------------------------------
ERROR:
LEA DX, ERR
MOV AH, 09H ;错误信息提示
INT 21H
;---------------------------------------
END0:
MOV AH, 4CH ;返回DOS
INT 21H
CODE ENDS
;---------------------------------------
END START
;=============================================

参考:
http://hi.baidu.com/do_sermon/item/4b344ad343487bc81a72b49b
更多追问追答
追问

我输进去了,在dos下运行,可以生成.obj文件,但是在link生成.exe文件时提示说找不到该文件,这是为什么?求帮忙看看谢谢啦

追答
是: SHUZHI,
不是:SHIZHI。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式