小编TTE*_*TEd的帖子

了解Motorola 68k中的堆栈

我试图理解汇编语言中的Stacks的使用和实现(Motorola 68k).

我知道MC 68k有8个地址寄存器,A7是特殊寄存器.因为它是两个堆栈指针,共享"系统堆栈指针"的名称.

我们有两个状态用户状态和主管状态.哪里:

user state- 

certain system resources are blocked and A7 accesses the user stack pointer.
Run Code Online (Sandbox Code Playgroud)

supervisor state-

 all system resources are available and A7 accesses the supervisor stack pointer
Run Code Online (Sandbox Code Playgroud)

现在我不确定如何回答这两个问题:

为什么68000有两个硬件堆栈指针?

写代码

这是正确的吗?

在这里,我不确定所谓的"运行时堆栈",我不确定(SP)和(A7)的真正区别.任何帮助将非常感激.

assembly 68000 motorola

2
推荐指数
1
解决办法
1154
查看次数

获取ArrayList中的下一个值(不工作)

每次用户按下按钮(使用Swing)时,我都试图获取特定arraylist中的下一个值.

这是我的尝试:

private void BNextActionPerformed(java.awt.event.ActionEvent evt) {
        int i = 0;
        Parse p = new Parse();
        temp = p.getTemp();
        temp2 = p.getTemp2();
        temp3 = p.getTemp3();

        if (CBUniversities.getSelectedIndex() == 0) {
            LNumStudents.setText("Number of students:  " + temp);
            Student s = p.getMacList().get(i+1);
            jTextField2.setText(s.getFirstName());
            TLastName.setText(s.getSurName());
            jTextArea1.setText(s.getAddress());
            i++;
        }
}
Run Code Online (Sandbox Code Playgroud)

其中Parse是一个类,包含3个整数的getter方法temp,temp2,temp3, and a getter for an ArrayList. Student s是Student类的一个对象,其中每个学生都有一个名字,姓氏和地址(在构造函数中初始化).

执行此if语句时,它会在指定的字段中显示学生信息,但这仅适用于前两个学生.在那之后,i价值似乎永远不会增加?

我试图println在if语句中检查它的值,但它只改变一次,奇怪的是.

我也尝试将它变成for循环,但这个值似乎只会改变一次(i).

Parse有我正在使用的这个getter方法

public ArrayList<Student> getMacList() {
        return mac;
}
Run Code Online (Sandbox Code Playgroud)

CBUniversities也是一个变量:

private javax.swing.JComboBox CBUniversities;
Run Code Online (Sandbox Code Playgroud)

我不确定这里出了什么问题,有什么想法吗?

java swing arraylist

1
推荐指数
1
解决办法
62
查看次数

标签 统计

68000 ×1

arraylist ×1

assembly ×1

java ×1

motorola ×1

swing ×1