大家好,8086汇编程序是从1累加到100并显示结果到屏幕上,现在显示结果不对,是什么原因呢?
data segment
msg db "result:",'$'
data ends
stack segment
dw 16 dup(0)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov dx,ax
mov ax,stack
mov ss,ax
output MACRO x
push dx
xor dx,dx
mov bx,x
div bx
add al,30h
mov dl,al
mov ah,2
int 21h
pop bx
ENDM
mov ax,101
mov cx,49
clc
L1: adc ax,101
loop L1
mov dx,0
output 1000 ;1000为除数,每次求出各个位上的数并调用21h 2号中断打印
mov ax,dx
output 100
mov ax,dx
output 10
add dl,30h
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end start
------解决方案--------------------------------------------------------
你改了dx里的值add al,30h
mov dl,al
------解决方案--------------------------------------------------------
寄存器可能会被改动,记得要save。