2068533370 发表于 2021-12-11 10:56:56

为什么dd没用

为什么我的debug用不了dd,无论是'1234'还是1234

jackz007 发表于 2021-12-11 10:56:57

本帖最后由 jackz007 于 2021-12-11 13:29 编辑

   debug 只能接受字节码和汇编指令,如果要修改内存字节值要用 e 命令,如:
e 100 01 02 03 04 05 06 07 08
   然后,
d 100 l8
   注意,l8 的 'l' 是字母 'L' 的小写。
   便可以看到刚修改的 ds:100~ds:108 内存的内容。
   如果输入汇编指令,可以这样:
a 100
mov ax,4c00
int 21

   注意,第 4 行是个空回车
   查看刚输入的汇编指令
u 100
   修改 ip 到 100
r ip 100
   从 cs:100 开始,执行刚才输入的汇编指令
g



人造人 发表于 2021-12-11 12:24:04

不是你这么操作的,认真看教程

2068533370 发表于 2021-12-11 20:12:53

人造人 发表于 2021-12-11 12:24
不是你这么操作的,认真看教程

?可是我用不起dd啊,无论是自己打指令保存为asm文件还是直接用debug都没有,我看别人都可以用的嘛,教程也没说怎么弄啊?

2068533370 发表于 2021-12-11 20:25:14

人造人 发表于 2021-12-11 12:24
不是你这么操作的,认真看教程

啊,对不起,是我自己没整明白了,

2068533370 发表于 2021-12-11 20:29:28

jackz007 发表于 2021-12-11 13:21
debug 只能接受字节码和汇编指令,如果要修改内存字节值要用 e 命令,如:

   然后,


嘛,谢谢,虽然不是我想要的答案,因为我想知道图片上右边的那个文件为什么编译不成功,我不知道错在哪里了

jackz007 发表于 2021-12-11 20:31:32

2068533370 发表于 2021-12-11 20:29
嘛,谢谢,虽然不是我想要的答案,因为我想知道图片上右边的那个文件为什么编译不成功,我不知道错在哪里 ...

   那你得把代码贴出来啊。

2068533370 发表于 2021-12-11 20:37:31

jackz007 发表于 2021-12-11 20:31
那你得把代码贴出来啊。

assume cs:code,ds:data

data segment
        db'1975','1976','1977','1978','1979','1980','1981','1982','1983'
        db'1984','1985','1986','1987','1988','1989','1990','1991','1992'
        db'1993','1994','1995'
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542.14430.15257.17800
data ends
table segment

table ends
code segment
code ends
end
我在做第八章最后一题,我照着书打的框架,却不知道为什么编译不起

jackz007 发表于 2021-12-11 20:50:09

2068533370 发表于 2021-12-11 20:37
assume cs:code,ds:data

data segment


      问题出在这一行(第10行)
      dw 11542.14430.15257.17800
      要改为这样
      dw 11542,14430,15257,17800

2068533370 发表于 2021-12-11 21:03:20

jackz007 发表于 2021-12-11 20:50
问题出在这一行(第10行)

      要改为这样

{:10_266:}原来如此,谢谢,
页: [1]
查看完整版本: 为什么dd没用