用汇编语言编写:从键盘输入一个十进制数(100以内),将其转变为十六进制数并在屏幕输出

求这个程序,急啊

第1个回答  2013-04-06
所述DATAS段DB 0

; ------------------------------ -

代码段

假设CS:代码,,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

I0:MOV AH, 1

INT 21H

CMP AL,0DH

JZ L1

CMP AL,'0'

JB I0

CMP AL,'9'
> JA I0

SUB AL,30H

MOV X,AL

I1:MOV AH,1

INT 21H

CMP AL,0DH

JZ L1 BR /> CMP AL,'0'

JB I1

CMP AL,'9'

JA I1

SUB AL,30H

MOV BH,AL
> MOV AL,X

MOV BL,10

MUL BL

ADD AL,BH

MOV X,AL

---------- ----------

L1:

MOV AH,MOV DL,2

INT 21H

MOV DL,13

INT 21H

--------------------

MOV AL,X

MOV BL MOV AH,, 16

DIV BL

地址AL,30H

MOV DL,AL

<br PUSH AX MOV AH,2

INT 21H POP AX

BR /> CMP AH,10

JB L3

地址啊,07H

L3:

添加啊,

30H MOV DL,AH

MOV AH, 2

INT 21H退出

MOV AH,4CH

INT 21H

码ENDS

完START

; ====== =============================

上面的程序,我能。
第2个回答  2012-12-19
DSEG SEGMENT
INPUT DB 'INPUT A NUMBER:','$'
OUTPUT DB 32,'RESULT IS:','$'
NUMBER DB 3
DB ?
db 3 DUP(0)
DSEG ENDS

CSEG SEGMENT
assume cs:CSEG, ds:DSEG
MAIN PROC FAR
mov ax, dseg
mov ds, ax
lea dx,INPUT
mov ah,9
int 21h
lea dx,NUMBER
mov ah,0ah
int 21h
lea dx,OUTPUT
mov ah,9
int 21h
mov bl,NUMBER+2
sub bl,30h
cmp NUMBER+1,1
jz jp0
mov al,10
mul bl
add al,NUMBER+3
sub al,30h
mov bl,al
jp0:mov ah,2
mov cx,8
jp1:shl bl,1
mov dl,'1'
jc out1
dec dl
out1:int 21h
loop jp1

mov ah,1 ;按任意键退出
int 21h
mov ax, 4c00h
int 21h
MAIN ENDP
CSEG ENDS
END MAIN

0~99都有效 欢迎追问 求满意
第3个回答  2012-12-16
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
AGAIN:MOVAH,1
INT21H
CMPAL,'0'
JBAGAIN
CMPAL,'9'
JBEA
CMPAL,'A'
JBAGAIN
CMPAL,'F'
JBEB
CMPAL,'a'
JBAGAIN
CMPAL,'f'
JBEC
JMPAGAIN
A:SUBAL,30H
JMPOK
B:SUBAL,37H
JMPOK
C:SUBAL,57H
JMPOK
OK:XORAH,AH
AAM
MOVDH,AL
MOVDL,AH
ADDDL,30H
MOVAH,2
INT21H
MOVDL,DH
ADDDL,30H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART追问

你这个程序怎么回事啊??

追答

格式有点问题,但程序是没错的,文本文档直接拷过来的

第4个回答  2013-03-19
DSEG SEGMENT
输入DB'输入一个数字:','$'

输出DB 32,“结果是:','$'

NUMBER DB 3

DB?

DB 3 DUP(0)

DSEG ENDS

的CSEG分类

假设CS:DS:CSEG,DSEG

MAIN PROC FAR

MOV AX,DSEG

MOV DS,AX

LEA DX,输入

MOV AH,9

INT 21H

LEA DX,NUMBER

MOV AH,0AH BR /> INT 21H

LEA DX,输出

MOV AH,9

INT 21H

数+2

子BL,30H MOV BL,

CMP NUMBER + 1,1

JZ jp0

MOV AL,10

MUL BL

添加人,数+3

子人,30H

MOV BL, AL 器JP 0:MOV AH,2

到mov cx,8

JP1:SHL BL,1

MOV DL,'1'

JC OUT1

十二月DL OUT1:INT 21H

循环JP1

MOV AH,1,按任意键退出

INT 21H

MOV AX,4c00h />诠释21H的

MAIN ENDP

CSEG ENDS

END主要

099欢迎,有效地询问满意度
第5个回答  推荐于2017-12-16
DATAS SEGMENT
X DB 0
DATAS ENDS
;--------------------------------
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
I0: MOV AH, 1
INT 21H
CMP AL, 0DH
JZ L1
CMP AL, '0'
JB I0
CMP AL, '9'
JA I0
SUB AL, 30H
MOV X, AL
I1: MOV AH, 1
INT 21H
CMP AL, 0DH
JZ L1
CMP AL, '0'
JB I1
CMP AL, '9'
JA I1
SUB AL, 30H
MOV BH, AL
MOV AL, X
MOV BL, 10
MUL BL
ADD AL, BH
MOV X, AL
;--------------------
L1:
MOV DL, 10
MOV AH, 2
INT 21H
MOV DL, 13
INT 21H
;--------------------
MOV AL, X
MOV AH, 0
MOV BL, 16
DIV BL
ADD AL, 30H
MOV DL, AL
PUSH AX
MOV AH, 2
INT 21H
POP AX
CMP AH, 10
JB L3
ADD AH, 07H
L3:
ADD AH, 30H
MOV DL, AH
MOV AH, 2
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
CODES ENDS
END START
;===================================

上述程序,可以的。本回答被提问者采纳

用汇编语言编写:从键盘输入一个十进制数(100以内),将其转变为十六进制数...
START:MOV AX,DATAS MOV DS,AX I0:MOV AH, 1 INT 21H CMP AL,0DH JZ L1 CMP AL,'0'JB I0 CMP AL,'9'> JA I0 SUB AL,30H MOV X,AL I1:MOV AH,1 INT 21H CMP AL,0DH JZ L1 BR \/> CMP AL,'0'JB I1 CMP AL,'9'JA I1 SUB AL,30H MOV BH,AL >...

用汇编语言编写:从键盘输入一个十进制数(100以内),将其转变为二...
mov dl,'1'jc out1 dec dl out1:int 21h loop jp1 mov ah,1 ;按任意键退出 int 21h mov ax, 4c00h int 21h MAIN ENDP CSEG ENDS END MAIN 0~99都有效 欢迎追问 求满意

汇编语言Masm:键盘输入十进制数,屏幕显示十六进制数
;输入不超过65535的10进制数,将其以16进制的形式显示code segment assume cs:code org 100hstart: jmp bbbx dw 0msg1 db 10,13,'please input a number:','$'msg2 db 10,13,' ','$'bbb: push cs pop ds lea dx,msg1 mov ah,9 int 21h le...

单片机汇编语言,如何做做十进制转16进制数
其实相当于BCD码转换为HEX码。BCD2HEX:MOV A,30H ANL A,#0FH XCH A,40H XCH A,30H SWAP A ANL A,#0FH MOV B,#10 MUL AB ADD A,40H MOV 40H,A MOV A,31H ANL A,#0FH MOV R4,A XCH A,31H SWAP A ANL A,#0FH MOV B,#10 MUL AB ADD A,R4 MOV R7,#100 MOV R3,#0 ...

汇编语言:键盘输入的十进制数据缓冲区,转换二进制数值,16进制格式显 ...
ES:DATA BEG: MOV AX, DATA MOV DS, AX MOV AH, 09H MOV DX, OFFSET BUF1 INT 21H MOV BX, 0 MOV CX, 16 _IN_: MOV AH, 07H ;输入字符 INT 21H CMP AL, 13 JE _OUT_ CMP AL, '0' JB ...

求汇编语言源代码(10进制数转16进制数)急求急求!!!
;进制 next:mov ah,1 int 21h cmp al,0dh jz conv ;如果是回车,表示输入结束,转换开始 push ax ;保存输入值,当然还有AH,因为堆栈的存取必须以字为单位 mov ax,bx mul cx mov bx,ax ;将先前的结果向上推一位 pop ax ;取回本次输入 and al,0fh ;屏蔽掉无用位,类SUB AL,30H xor ah...

用汇编语言写:从键盘输入一个十进制数(100以内),将其转变为二进制...
print MACRO para lea dx,para mov ah,9 int 21h ENDM data segment buffer db 2,0,2 dup(?)TEN db '请输一个100之内的两位数:$'HEX db '16进制:$'BIN db ' 2进制:$'CRLF db 0dh,0ah,24h data ends code segment assume cs:code, ds:data start: mov ax,data mov ds,...

使用汇编语言,从键盘上输入0-65535之间的十进制数,将其转换成十六进制数...
;输入不超过65535的10进制数,将其以16位的形式显示code segment assume cs:code org 100hstart: jmp bbbx dw 0msg1 db 10,13,'please input a number:','$'msg2 db 10,13,' ','$'bbb: push cs pop ds lea dx,msg1 mov ah,9 int 21h lea...

单片机中怎样用C语言实现 十进制数化成16进制数?
int a=100;\/\/a是一个十进制数 char str[10];\/\/str是字符型数组 sprintf(str,"%h",a);\/\/转换成16进制并保存于str数组之中

用汇编语言编写:从键盘输入一位十进制数(10以内),将其转变为二进制数...
输入:0~9 输出:0000~1001?输出可以是四位吗?

相似回答