怎样可以使这样的汇编程序显示结果!急切的想弄明白!

girllovecompter 2009-11-30 11:01:00
例如这个程序:DATAS SEGMENT
arc dw 7138h,84a6h,29eh
max dw ?
DATAS ENDS

STACKS SEGMENT
stk db 20 dup(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,stacks
mov ss,ax
mov sp ,size stk
lea si,arc
mov ax,[si]
mov bx,[si+2]
cmp ax,bx
jae fmax1
mov ax,bx
fmax1:cmp ax,[si+4]
jae fmax2
mov ax,[si+4]
fmax2:mov max,ax
MOV AH,4CH
INT 21H
CODES ENDS
END START
此程序在 Masm for Windows 集成实验环境 2009.7 这个软件上编写的,运行之后显示“按任意键退出”,我想要输出 r 的值应该怎样修改程序呢?
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
supermath 2009-11-30
  • 打赏
  • 举报
回复
mov ah,02h
int 21h


dl中即为要显示的字符的ascII值
dlpzgr 2009-11-30
  • 打赏
  • 举报
回复
DOS功能调用
friendly_ 2009-11-30
  • 打赏
  • 举报
回复

DATAS SEGMENT
arc dw 7138h,84a6h,29eh
max dw ?
;------------------------
radix dw 16 ;进制数 2,10,16等
table db '0123456789ABCDEF'
;---------------------------
DATAS ENDS

STACKS SEGMENT
stk db 20 dup(0)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
mov ax,stacks
mov ss,ax
mov sp ,size stk
lea si,arc
mov ax,[si]
mov bx,[si+2]
cmp ax,bx
jae fmax1
mov ax,bx
fmax1:
cmp ax,[si+4]
jae fmax2
mov ax,[si+4]
fmax2:mov max,ax
;----------------------------
xor cx, cx ;cx统计位数
mov ax, max ;ax被除数
mov bx,radix
trans:
mov dx, 0
div bx ;radix除数
push dx ;余数入栈
inc cx
test ax,ax
jnz trans
xor bx,bx
output:
pop bx ;余数出栈
mov dl,byte ptr table[bx];转化为ASCII码
mov ah,2
int 21h
loop output
;---------------------------------

MOV AH,4CH
INT 21H
CODES ENDS
END START

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧