小编Jen*_*ger的帖子

"案例表"如何在NASM中运行?

作为我们任务的一部分,我们应该用矩阵做各种函数.对于菜单,我们被分配使用"案例表"(它实现为2-D数组,每行只包含一个字母常量及其相应的函数)

我真的无法理解笔记,这本书是零帮助(它根本没有提到它们)

    .data
CaseTable BYTE 'A'  ; lookup value
    DWORD Process_A ; address of procedure
    EntrySize = ($ - CaseTable)
    BYTE 'B'
    DWORD Process_B
    BYTE 'C'
    DWORD Process_C
    BYTE 'D'
    DWORD Process_D

NumberOfEntries = ($ - CaseTable) / EntrySize
….
segment .text
...
    mov ebx, CaseTable  ; point EBX to the table
    mov ecx,NumberOfEntries ; loop counter

L1: cmp al,[ebx]    ; match found?
    jne L2  ; no: continue
    call PTR [ebx + 1]  ; yes: call the procedure
    jmp L3 …
Run Code Online (Sandbox Code Playgroud)

x86 assembly nasm

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

如何在程序集8086中找到软盘上的占用空间

我有一个家庭作业,用汇编语言为8086系列处理器制作一个简单的程序,读取并打印软盘上占用的总空间.

现在我有几个问题.我知道我必须使用中断,但我不知道哪一个以及它是如何工作的,我尝试了诺顿指南,但我找不到我想要的东西.另一个问题是我没有软盘或者有一台软盘的机器......我完全没办法测试这个程序.

换句话说,我被卡住了

编辑:

另外我如何乘以3个单词?Ax*Cx*Dx?因为Word*Word =双字......我不知道如何将双字与Word相乘.

assembly dos

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

如何将com或excel对象序列化为二进制格式,以便我可以将它存储在asp.net的内存流中

这是示例代码...但我得到了serializationException.

xlbook是对象,我想将此对象保存到memorystream.

unsafe public void Save(IStream stream, bool clearDirty, Excel.Workbook xlbook)
{
    try
    {
        //if (stream == null)
        //{
        //    return;
        //}
        //object data = xlbook;
        if (xlbook == null)
        {
            return;
        }
        // convert data to byteArray   


        MemoryStream memoryStream = new MemoryStream();
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        //AppDomain currentDomain = AppDomain.CurrentDomain;                        
        //currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve); 


  //here im getting exception.                        
        binaryFormatter.Serialize(memoryStream, xlbook);            
        byte[] bytes = memoryStream.ToArray();
        memoryStream.Close();
        //get memory pointer
        int cb;
        int* pcb = &cb;
        //save data
        byte[] arrayLen …
Run Code Online (Sandbox Code Playgroud)

c# asp.net assemblies memorystream object-serialization

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

小型汇编代码序列优化(intel x86)

我正在用汇编语言做一些练习,我发现了一个关于优化的问题,我无法弄清楚.任何人都可以帮助我

所以问题是优化以下汇编代码:

----------------------------例1 --------------------- ----

mov dx, 0 ---> this one I know-> xor dx,dx
Run Code Online (Sandbox Code Playgroud)

----------------------------例题--------------------- ---

cmp ax, 0
je label
Run Code Online (Sandbox Code Playgroud)

----------------------------示例3 --------------------- ----

mov ax, x
cwd
mov si, 16  
idiv si     
Run Code Online (Sandbox Code Playgroud)

---->在这个例子中我能想到的最多的是idiv 16的最后两行,但我不确定

----------------------------范例4 --------------------- ----

mov ax, x
mov bx, 7
mul bx
mov t, ax
Run Code Online (Sandbox Code Playgroud)

----------------------------例5 --------------------- ------

mov si, offset array1
mov di, offset array2
; for i = 0; i < n; ++i
do:
   mov bx, [si]
   mov [di], bx
   add si, 2 …
Run Code Online (Sandbox Code Playgroud)

optimization x86 assembly intel

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

排列成本

我得到了集合{1,2,...,n}的排列.我必须通过以最小的总成本交换位于成功位置的数字来排序这种排列.交换位于连续位置的元素x,y的成本是min(x,y).

例如,如果我有排列3,1,2,4总的最小成本是3.因为我执行这些步骤((x,y)意味着用y交换x):

  • (3,1),2,4结果1,3,2,4,成本最小(1,3)= 1
  • 1,(3,2),4结果1,2,3,4与成本min(2,3)= 2

总费用为3.

我通过交换最小成本未排序对来尝试蛮力,直到没有未排序的对,但这种方法显然不够快.

我的问题是,如何根据我的条件找到最低的分拣成本?

c++ algorithm

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

在VB.NET中使用asm

我想在VB.NET中调用一些ASM函数.我该怎么做?这是出于性能目的.

我没有在网上找到任何东西.

谢谢

.net vb.net performance assembly

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

使用ASM 4.0我怎样才能创建一个简单的Getter?

说我有一个这样的课:

public class Example{

     private String secret = "Secret String";

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能添加一个getter来返回这个字符串(没有使用反射),所以我想以某种方式添加它

public String getSecret(){
    return secret;
}
Run Code Online (Sandbox Code Playgroud)

java getter bytecode java-bytecode-asm

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

如何检测装配中的箭头键

我想用箭头键在汇编语言中引导一个形状,我的代码是这样的:

call getkey
cmp al, ...
je direct
Run Code Online (Sandbox Code Playgroud)

什么后我应该把它用于诊断用箭头键用户按下???

assembly

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

连接的字符串是如何分配的?

我想知道字符串和内存如何一起工作。

据我所知,我知道当创建一个字符串时,它会将一些字符数组 + '\0' 放入内存中。我也知道它们是一成不变的。那么,对于连接之类的事情,内存中会发生什么,允许您访问相同的字符串?

我不认为您连接的字符串或字符直接放在原始字符串的地址之后,因为这可能会重叠一些所需的内存。

在 C# 和其他语言中,您可以说:

string s = "Hello" ... s = s + '!'

这会创建一个新字符串吗?一个指向一个新位置并显示“Hello!”,而使原始位置永远不会被引用的位置?

或者字符串使用的默认字符缓冲区是否允许连接中存在一些空间?

c++ memory string concatenation

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

6502装配说明无效

我正在6502组装中打印到屏幕上

在我写的监视器中

            STA $01, y    to store the value at the pointer
Run Code Online (Sandbox Code Playgroud)

当我在此行按Enter键时,它说指令无效?

有任何想法吗...?

assembly 6502

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