小编Mic*_*ael的帖子

x86部分寄存器用法

如果我保存一个值,比如说8位寄存器中的10,DH然后是8位寄存器中的另一个值15 DL.这是否有效,或者它们是否会互相覆盖,因为它们都是32位EDX寄存器?

mov $10, %DH
mov $15, %DL
cmp %DL, %DH

jle done
Run Code Online (Sandbox Code Playgroud)

基本上我只是在使用8位寄存器时会感到困惑,它会如何影响32位寄存器,反之亦然.谢谢.

此外,您还可以保存在值7 EDXDHDL仍然有自己的价值观或将他们现在有7?

x86 assembly

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

MIPS中的操作码中la和li有什么区别?

例如,在此代码中:

#display message
li $v0, 4
la $a0, Message


#promt user to enter name
li $v0, 8 
la $10, username
li $a1, 20
syscall

#display the name
li $v0, 4
la $a0, userName
syscall
Run Code Online (Sandbox Code Playgroud)

我很困惑li(加载立即)和la(加载地址)真正意味着什么?

assembly mips

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

Framework .NET.只有很多Dll和一个Exe之间的区别

我正在构建一个WinForms应用程序.我想知道一个只有.exe文件或多个Dll之间是否有区别.实际上我有一个.exe的7Mb,我担心一些性能问题; 但我已经阅读了Framework在启动时加载所有需要的Dll,因此程序集碎片是无用的.是正确的?

.net c# vb.net dll .net-assembly

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

我的项目可以引用针对较低版本 .net 框架的程序集吗?

我在.net平台上的时间不长。不到两个月。我遇到了这个“无法从程序集中加载类型 blah.blah.blah。

因此,我一直在与多种资源进行斗争,包括此处差异帖子中的建议。仍然没有运气。但最接近的建议似乎表明某些参考文献可能针对较低版本的 .net。实际上,有许多针对不同版本的参考,并且在其中一些参考中,还有更多可能针对不同版本的依赖程序集。

我一直在努力使用 VS 2010(.net 4.0) 转换我拥有源代码的一些程序集,整个内容几乎让我不知所措。

所以我沮丧地问:我的参考组件(及其依赖项)和我的项目目标必须相同版本吗?

.net c# asp.net .net-assembly

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

MIPS 地址超出范围 (MARS)

我正在尝试编写一个简单的代码,将字符串和整数输入保存到一个数组中,然后将它们打印出来(稍后我还将添加另一个对它们进行排序的部分,但我必须先使其工作)。

.data
array:      .space  40  #10 elements array


in_name:
   .asciiz "\nInsert name: "
in_date:
   .asciiz "\nInsert date (mmdd): "
appt:
   .asciiz "\nList: "
spaz:       .asciiz " "

.text
main:       

    la  $s0, array      #load array in s0
    addi    $t0, $zero, 0       #t0=0 counter
    addi    $s1, $zero, 0       #s1=0 array size counter
            j    Input

Input:
        li  $v0, 4           
    la  $a0, in_date
    syscall             #ask date 
    li  $v0, 5          
    syscall             #read date
    add     $t1, $zero, $t0                #offset in t1
    add     $t1, $t1, $t1           #t1*2 …
Run Code Online (Sandbox Code Playgroud)

assembly mips mars-simulator

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

为什么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
查看次数

转换Golang中的函数类型

// Each type have Error() string method.
// The error built-in interface type is the conventional interface for
// representing an error condition, with the nil value representing no error.
//  type error interface {
//   Error() string
//  }

func (f binFunc) Error() string {
    return "binFunc error"
}

func func_type_convert() {
    var err error
    err = binFunc(add)
    fmt.Println(err)
    fmt.Println(i)
}
Run Code Online (Sandbox Code Playgroud)

我对上面的代码有两个问题:

  • Erroradd函数转换为binFunc类型时,我不知道为什么执行该方法?
  • 为什么add函数转换结果能够分配给错误的错误接口变量?

go

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

如何从Class获取字节码作为字节数组

给定一个任意Class实例,包括一个运行时生成的实例(.class磁盘上没有文件),有没有办法获取类字节?

java jvm java-bytecode-asm jvm-bytecode

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

在 Kotlin 中用“When”替换“If”

我无法将if表达式转换为whenkotlin 中的表达式。我的如果代码如下:

fun main() {
    var cardPoints = 7_000


    val cardLevel: String = if (cardPoints >= 0 && cardPoints < 1000) {
        "pearl"
    } else if (cardPoints >= 1000 && cardPoints < 5_000) {
        "silver"
    } else if (cardPoints >= 5_000 && cardPoints < 10_000) {
        "gold"
    } else {
        "platinum"
    }

    val plural = if(cardPoints > 1 || cardPoints == 0) "s" else ""
    println("You have $cardPoints point$plural and are at the $cardLevel level.")
} …
Run Code Online (Sandbox Code Playgroud)

kotlin

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

为什么奇偶校验标志为 1 而奇偶校验标志为奇数

执行以下两条指令后:

MOV BX, 0FD51H                                        
DEC BX
Run Code Online (Sandbox Code Playgroud)

我得到奇偶校验标志 = 1(表示偶数个)

但是,递减值的二进制表示为:

1111 1101 0101 0000

它有 9 个 1(即奇数个 1)。

此外,NEG BX在此之后执行导致 PF = 0。但是,2 的补码是:

0000 0010 1011 0000有偶数个。所以我期望 PF = 1。

assembly x86-16 eflags emu8086

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