gpt4 book ai didi

assembly - 为什么我得到另一个结果?

转载 作者:行者123 更新时间:2023-12-02 21:39:04 25 4
gpt4 key购买 nike

我尝试为学校解决这个项目,当我使用编译器时,最终结果是一些表情符号而不是数字之和

我重写了整个代码,但得到了相同的结果

.model small  
.stack 100h
.data
nstr db 6 dup(' ')
idv dw 10
a dw 2
b dw 9
c dw 6
x dw ? ;x=a+b+c
d dw 7
e dw 5
y dw ? ;y=d+e
z dw ? ;z=x+y
.code
.start
mov ds, ax
; x = a+b+c
mov ax, a
add ax, b
add ax, c
mov x, ax
; y = d+e

mov ax, d
add ax, e
mov y, ax
; z = x+y

mov ax, x
add ax, y
mov z , ax
mov si,5
mov nstr[si], '$'
dec si


mov ax, z
mov dx,0

loop1: ;
div idv

;
add dl, '0'
mov nstr[si],dl

dec si

mov dx,0


cmp ax,0
jne loop1

listn:
mov ah, 09h
mov dx, offset nstr ;
int 21h

stopprg:
mov ah, 4ch
int 21h

end

最佳答案

.start 指令将生成代码,用于初始化您选择的模型的段(在本例中是 small)。您可以使用 mov ds, ax 来用 AX 中的任何内容覆盖 DS。这会将数据段指向内存中不包含数据的位置(例如 nstridva ... z 等)产生不正确的结果。要修复,只需删除此行:

mov ds, ax

关于assembly - 为什么我得到另一个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com