16-bit

    -1热度

    1回答

    在x86 16位汇编,如果出现在clax和0x10(16)一1,下面的代码并没有把0x1000在cl: mul cl ; ax = 0x 10 mul cl ; ax = 0x 100 mul cl ; ax = 0x0000 (not 0x1000) 为什么没有按”这个代码按预期工作吗?

    5热度

    2回答

    我想在nasm中构建一个简单的x86 Linux引导程序。 在Linux的bzImage存储在从所述第一扇区开始的磁盘分区SDA1。 予读取来自bzImage的(15个扇区)的实模式代码到存储器从0x7E00开始。 但是,当我跳进代码时,它只是挂起,没有任何反应。 我已经创建代码,SDA上的主引导记录。我可能是最好的,如果我只附加 整件事情。我想知道为什么它会在远程跳转指令后挂起。 [BITS 1

    2热度

    2回答

    我正试图编写一个C++程序,将平场应用于图像。它应该加载一个图像并将其分割为另一个加载的图像,然后将其导出为PNG。我的程序编译正确,但只生成全黑图像。 #include <climits> #include <stdio.h> #include <string> #include <opencv/cv.h> #include <opencv/highgui.h> using name

    3热度

    2回答

    我正在为ASM中的68k处理器编写一个程序。 ,我需要做类似的东西 if (D0 > D1) { do_some_stuff(); do_some_stuff(); do_some_stuff(); do_some_stuff(); } else { do_some_stuff(); do_some_stuff(); do_s

    2热度

    3回答

    此问题可能是多余的,但我没有找到确切的答案。 C 8位16位32位编译器之间的区别是什么? .exe文件有所不同如何通过为同一代码的不同编译器生成...........

    1热度

    3回答

    说第一字节= 2(十进制)和第二字节= 1(分解)。因此 第一字节表示257(分解)。因此,第二个字节代表1(十进制)。 所以(总)16位值是258(十进制)。 所以,如果我做的: (byte1*256)+byte2 是那个 '正确' 的方式做到这一点?或者,还有更好的方法? 感谢, T.

    1热度

    1回答

    好日子, 我试图使用模运算在NASM,但我不断收到一个错误......我要加密用户输入的字符串...所以必须加密在26个字母范围内。 eg当加密值为3并且用户输入'z'时,新字符应该是'c',而不是在ASCII表中z之后的任何字符....所以我被告知使用模数运算符,我只是来看做对了。 我的加密代码 mov AL, [keyValue] add byte [SI], AL ,这是一个循环 ke

    2热度

    3回答

    我有一个16位的值是这样的: 0000000000000011 我想在两个8位值拆分此类似: 00000000 and 00000011 16位值是一个变量,byte_val1,这是一个无符号的16位整数。 如何在VB.NET中做到这一点?

    -1热度

    3回答

    我有一个16位无符号整数,它的值是这样的: byte_val1 = 1000000000000001 从这个我需要右移这一点,使它像这样: 1100000000000000 我已经做到了这一点: byte_val1 = byte_val1 >> 1 and getting byte_val1 = 100000000000000。 之后,我做了 byte_val1 = byte_val1

    5热度

    2回答

    我想了解如何使用程序集(NASM)创建Dos .EXE文件,手动构建标头并组装文件作为二进制。我对页面选项有问题(包括页面总数和最终页面的字节数)。无论我设定初始值多小,程序都可以工作。 作为一个极端的情况下,设置1页1个字节的下面的程序功能,即使: ; ; the smallest possible "Hello, World!" .EXE (DOS MZ) file ; assemble