小编Mic*_*ael的帖子

为什么movsw指令将si和di寄存器增加2,而movsb指令将si和di寄存器增加1?

我正在使用平面汇编器以汇编语言处理 movsb 和 movsw 指令。现在,我注意到当执行 movsb 指令时,SI 和 DI 寄存器递增 1,而 movsw 指令则使 SI 和 DI 寄存器递增 2。我有点困惑为什么?谁能给我解释一下原因。我在下面添加了我的代码以用于带有注释的说明。请帮帮我。谢谢!

使用movsb指令(平面汇编器)

cld ;clear direction flag

lea si,[val]  ;the memory address of source is loaded in the source register

lea di,[v];the memory address of the destination is loaded in the destination register

mov cx,5 ; the counter basically executes for the number of characters in the array

rep movsb ; repeats the instruction for 5 times

val:
     db 'A' 
     db 'B'
     db 'C' …
Run Code Online (Sandbox Code Playgroud)

assembly fasm

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

Modifying struct members through an interface in Go

I've come to a point in a Go project of mine where I'd like to create multiple subclasses of a base class, and be able to operate on instances of the subclasses through a base class/interface variable (I'm using the word "class" even though the concept doesn't really exist in Go).

Here's what it might look like in C++ just to show what I mean:

#include <iostream>

using namespace std;

class Base {
public:
    int x,y;
    virtual void DoStuff() {}; …
Run Code Online (Sandbox Code Playgroud)

inheritance struct interface go

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

骰子游戏,使每个模具滚动不同

好吧,我刚刚完成了我的练习,并坚持如何让每个骰子滚动他们自己的随机生成的数字.该程序确实滚动随机数,只是每次你重新掷骰子时,总是滚动相同的数字.而且这个简单却又头疼的问题发生了,出于某些原因,我也有

cout << "Adding both dices up you rolled a total of: " << totalScore() << "." << endl;

我也被同学告诉我,我的faceValue是非法值,应该设置为合法值.我并没有完全明白他的意思,我确信它会在我的成绩中取得一些成绩(不是很多).

#include "stdafx.h"
#include <iostream>
#include <string>
#include <ctime>  
using namespace std;    

class PairOfDice
{


private:

int diceOne;
int diceTwo;
int score;
int faceVaule;

public:

PairOfDice(){
    srand(time(NULL));
    roll();

}

void roll(){
    diceOne = (rand() % 6) + 1;
    diceTwo = (rand() % 6) + 1;
    setdiceOne(diceOne);
    setdiceTwo(diceTwo);
}


void setdiceOne(int value){

    faceVaule = value;

}

int getdiceOne(){

    return faceVaule;

}

void …
Run Code Online (Sandbox Code Playgroud)

c++ dice

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

我需要一些解决这些问题的答案.我在使用记录在Ada编程时遇到了这些错误

我是Ada编程的新手.这是我的一个程序的ADA代码,它给我一个在执行时输入一个足球传奇名称的东西列表.但是我收到以下错误.请帮帮我:

发现的一些错误是:1.Discriminants必须具有离散或Access类型2.组件"FBClubs不能在记录声明结束之前使用3.变体部分中的歧视必须是离散的第4部分."player"未定义5 ."pos"未定义.6.没有候选解释与sctuals匹配:=>在"类型播放器名称..."行调用继承操作"to_string"

with Ada.Text_Io; use Ada.Text_Io; 
with Ada.Integer_Text_Io; use Ada.Integer_Text_Io; 
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;

Procedure football_record is 
type Position is (Goalkeeper,Midfielder,Forward,Defender);
type playernames is new Unbounded_String;
type FBClubs is (ACMilan,Man_United,Aresnal,ParisSt.Germain,Real_Madrid,Liverpool,Chelsea,Man_City,Lille,
Tottenham,Ajax,Juventus,Dortmund,Roma,Santos,Roma,Bayern_Munich,Inter_Milan);
type countries is (England,Argentina,Brazil,France,Italy,Portugal,Spain,Germany,Iran,Japan);
type fbplayer(player:playernames) is 
   record 
WCAppearances:Integer;
pos:Position;
country:countries;
fbclubs:FBClubs;
case player is 
 when "David Beckham" =>
        country:countries:=England;
        WCAppearances:Integer:=3;
        pos:Position:=Midfielder;
        fbclubs:FBClubs:=ACMilan &"+" & Man_United &"+" & Real_Madrid &"+"& ParisSt.Germain;
 when "Lionel Messi" =>
        country:countries:=Argentina;
        WCAppearances:Integer:=1;
        pos:Position:=Forward;
        fbclubs:FBClubs:=Barcelona;
.....and some other 12 players(legends)..
when others =>
       country:countries:=Nil; …
Run Code Online (Sandbox Code Playgroud)

ada

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

在 MIPS 上创建并写入文件

我正在尝试创建一个名为“exit.txt”的文件,并在其中写入一些数据。我尝试过不同的标志和模式,但这似乎不起作用。这是我正在使用的代码:

str_exit: .asciiz "/home/LinuxPc/Desktop/exit.txt"

file_write:

li $v0, 13
la $a0, str_exit
li $a1, 1
la $a2, 0
syscall
Run Code Online (Sandbox Code Playgroud)

有什么办法让它发挥作用吗?谢谢 !!

file mips

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

使用 JNI 调用 Java 方法时,“方法签名”参数是什么?

我想在 Qt 中使用 JNI 调用 Android Java 方法。有一个我无法理解的奇怪的“方法签名”参数。这是什么,我应该如何设置?

在示例中,它类似于(II)Ior (I)I。这是什么意思?

例如:

jint max = QAndroidJniObject::callStaticMethod<jint>("java/lang/Math", "max", "(II)I", a, b);
Run Code Online (Sandbox Code Playgroud)

c++ java java-native-interface qt signature

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

我收到扫描仪错误

我从命令提示符处得到此错误:

bikeGame.java:9: error: cannot find symbol
     String input = scanner.nextLine();
                    ^
symbol:   variable scanner
location: class bikeGame
1 error
Run Code Online (Sandbox Code Playgroud)

您好,在收到上述错误时,您可以帮我修复吗?(我是java的新手,如果你能看到错误,这是我的代码)

import java.util.Scanner;
import java.io.IOException;
class bikeGame {
 public static void main(String[] args){

 String welcome = "Welcome to Bike Rider! You can use the commands 'faster', 'slower' and 'brakes'. Type   'start' to begin...";
 String die = "You died, type 'start' to play again...";
 System.out.println(welcome);
 String input = scanner.nextLine();
 System.out.println("You selected " + input + "? Is this correct? <true or false>"); …
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

c++ ×2

java ×2

ada ×1

assembly ×1

dice ×1

fasm ×1

file ×1

go ×1

inheritance ×1

interface ×1

java-native-interface ×1

mips ×1

qt ×1

signature ×1

struct ×1