现有汇编题目如下,小弟菜鸟,所编代码错误多多,望各位大神指教

设计程序。实现Y=2X+3,X是一位十进制数。要求X从键盘输入,在下一行上显示’result =‘以及十进制计算结果。代码:assume cs:code,ds:datadata segment x db ?,?infor db ✀result✀,✀$✀crlf db 0dh,0ah,24h ;回车换行符data ends code segmentstart: mov ax,offset data mov ds,axmov bl,2 mov ah,01h ;键盘输入 int 21h sub al,30h ;去掉ASCII码 mov ah,0mul bl ;相乘aam ;十进制乘法调整 mov x,almov x+1,ah add ax,3mov bx,axmov dx,offset crlf ;换行int 21h mov dx,offset infor ;显示"result"mov ah,09H int 21hmov dl,3dh ;显示"="mov ah,02hint 21h mov dl,bh ;显示结果int 21hmov dl,blint 21h mov ah,4c00hint 21hcode endsend start
2026年09月18日 13:45
有1个网友回答
网友(1):

assume cs:code,ds:data
data segment

x db ?,?
infor db 'result','$'
crlf db 0dh,0ah,24h ;回车换行符

data ends

code segment
start:
mov ax,data

mov ds,ax

mov bl,2
mov ah,01h ;键盘输入

int 21h

sub al,30h ;去掉ASCII码

mov ah,0

mul bl ;相乘
mov x,al
mov x+1,ah
add ax,3
aam
mov bx,ax
mov dx,offset crlf ;换行
mov ah, 9
int 21h
mov dx,offset infor
;显示"result"
mov ah,09H

int 21h

mov dl,3dh ;显示"="
mov ah,02h
int 21h
mov dl,bh ;显示结果
add dl, 30h
int 21h
mov dl,bl
add dl, 30h
int 21h

mov ax,4c00h
int 21h
code ends
end start