作者gigopro (黄金右手)
看板Soft_Job
标题[请益] 组合语言debug问题
时间Thu Jan 9 19:49:18 2020
依序往下执行
https://i.imgur.com/5PMaism.jpg
https://i.imgur.com/FSwz5kd.jpg
https://i.imgur.com/oH2vNfH.jpg
这里就跑掉了 变成下面这样
https://i.imgur.com/T4lUUOJ.jpg
各位大大 原本的mov bx,[4] 怎麽会不见了呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.193.146.201 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1578570560.A.3CC.html
1F:推 geroge0820: 总觉得好像大学的组语课作业01/09 20:02
这是我去图书馆找书看的范例啦 但是照着做做不出来= =
※ 编辑: gigopro (123.193.146.201 台湾), 01/09/2020 20:22:23
2F:→ spfy: 一直觉得写组语的真他妈是天才01/09 20:58
3F:推 oopFoo: sp放20干麻?stack直接指到mov bx,[4]。不改到都不可能。01/09 21:04
4F:→ oopFoo: 还有现在还在用16bit?01/09 21:05
5F:推 Neistpoint: 好久没看 X86 asm 了01/09 21:06
6F:→ oopFoo: 20应该是Hex,你ss:sp指向2000:0020。sp 是往上长的,你01/09 21:46
7F:→ oopFoo: interrupt一来,就把上面一段code都改掉。你sp应该放在很01/09 21:47
8F:→ oopFoo: 後面才是。cs,ds,ss都是2000,应该是com程式64k。嗯二十几01/09 21:49
9F:→ oopFoo: 年没写,既然还没全忘XD01/09 21:49
因爲它这一章在说 一段内存既可以是代码段 也可以是数据段 也可以是栈空间 所以才会
放在一起 看来还有牵涉到一些我还没读到的部分 之後再来看这题好了
※ 编辑: gigopro (180.204.3.129 台湾), 01/09/2020 21:55:55
10F:推 xam: 超过10年15年的书还是淘汰了比较好 01/09 22:07
11F:→ oopFoo: mov sp,0 才对。这样sp是在64k的最後面。 01/09 22:18
12F:→ oopFoo: sp是往上长(数字变小)跟其他相反。0=ffff+1,16bit 01/09 22:22
13F:推 Bencrie: 这 DOS real mode 的 debug.exe 吧 01/10 01:30
14F:推 GGFACE: 你不如学机器语言 01/10 08:54
15F:推 zhuzii: 钓出资深高手 01/10 12:41
16F:→ a8989332: 楼下宅瑟夫 01/12 17:37
17F:→ leolarrel: 不是,楼下才是 01/13 12:09