gpt4 book ai didi

assembly - 将 .data 部分中定义的整数移动到寄存器

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

这个问题在这里已经有了答案:





Having no luck with data NASM

(1 个回答)


8 个月前关闭。




我正在尝试用 16 位整数初始化内存位置并打印它。
我得到的结果是 unsigned short 的最大值。 val 的大小是 DW所以它是 16 位,AX也是 16 位,所以没有大小冲突。mov [val], word 122做我想要的,但如果在主程序中初始化是我的目标,我会使用 .bss和 val2。
为什么会发生这种情况,我如何实际获取存储在 val 中的值?
我用 nasm prog.asm -o prog.exe在 DOSBox 下。

section .data
val dw 123

section .bss
val2 resw 1

section .text
global _start

_start:
; mov [val], word 122
mov ax, word [val]
mov cx, 0
mov bx, 10

loophere:
mov dx, 0
div bx

push ax
add dl, '0'

pop ax
push dx
inc cx
cmp ax, 0
jnz loophere

mov ah, 2

loophere2:
pop dx
int 21h
loop loophere2



最佳答案

添加 org 0x100程序一开始就解决了不良偏移引起的问题。

关于assembly - 将 .data 部分中定义的整数移动到寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65462147/

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