Debugging 在我的汇编代码中查找错误时遇到问题
我是汇编语言的初学者。我正在使用“easy 68k editor/assembler”编写68k汇编代码,要求用户输入2个值,然后将它们相加并显示出来。问题是,我的代码不断停止,我不知道如何解决/调试这个问题 有人能帮我找出如何追踪错误吗?我将不胜感激。先谢谢你Debugging 在我的汇编代码中查找错误时遇到问题,debugging,assembly,compiler-construction,machine-code,68000,Debugging,Assembly,Compiler Construction,Machine Code,68000,我是汇编语言的初学者。我正在使用“easy 68k editor/assembler”编写68k汇编代码,要求用户输入2个值,然后将它们相加并显示出来。问题是,我的代码不断停止,我不知道如何解决/调试这个问题 有人能帮我找出如何追踪错误吗?我将不胜感激。先谢谢你 *----------------------------------------------------------- * Program : Sum of Two Numbers * Written by : Me * Dat
*-----------------------------------------------------------
* Program : Sum of Two Numbers
* Written by : Me
* Date : July 15, 2012
* Description: This program will read in 2 numbers the user
*inputs and find the sum.
*-----------------------------------------------------------
org $8000
START movea.l #MSG1, A3
trap #3
clr.w D2
JSR Loop
trap #2
move.w d2, d4
movea.l #msg2, a3
trap #3
clr.w d2
jsr loop
trap #2
movea.l #msg3, A3
trap #3
add.w d4, d2
JSR DISP
trap #2
trap #9
LOOP trap #0
trap #1
cmp.b #$0D, D1
BEQ BREAK
and.b #$0F, d1
mulu #10, d2
add.w d1, d2
jmp loop
Break rts
DISP clr.b d3
DISDIV divu #10, D2
move.b #16, d5
ror.l d5, d2
or.b #$30, d2
move.b d2, -(A7)
addq #1, d3
clr.w d2
ror.l d5, d2
bne DISDIV
DISDIG move.b (a7)+, D1
trap #1
subq.b #1, D3
bne DISDIG
rts
org $8100
MSG1 DC.B 'Please enter the first of two numbers (two digits) ', 0
MSG2 DC.B 'Please enter the second of two numbers (two digits) ', 0
MSG3 DC.B 'The sum of the two 2 digit numbers you entered is ', 0
end start
您使用的陷阱很可能不是Easy68K使用的陷阱。查找Easy68K使用的陷阱
陷阱指令的功能不是由68K汇编语言定义的,而是由操作系统分配的(如果操作系统使用了陷阱,一些人就会忽略它们)。如果执行陷阱指令,68000只执行陷阱向量指向的代码。没有为任何陷阱分配“buildin”函数。您的代码应以以下内容开头:
LEA MSG1, A1
MOVE.B #14, D0
TRAP #15
这将向用户显示第一条消息。有关调用I/O陷阱的更多信息,请查看。如果有其他论坛我最好将此发布到,请让我知道。谢谢你不能在68000模拟器中一步一步地通过它,看看它在哪里失败?我知道它在哪里失败。我只是不知道为什么。这是一个陷阱例外,我称之为我的第一个陷阱#3。如果你知道它失败的地方,为什么不在问题中这样说呢?你提供的信息越多,别人就越有可能提供帮助。陷阱3应该怎么做?它的参数是什么?更好的是,发布一个指向代码所使用的API的链接,这样我们就可以了解它了。