标签: microprocessors

从1Mbyte转换为Hex

我在理解以下文字时遇到问题,

8088支持1外部存储器的Mbyte.该存储空间是从视图上的地址范围储存在连续的地址数据的各个字节的软件点组织00000FFFFF.

现在我不知道作者如何从1 MB转换为FFFFF.有人可以帮帮我吗?

谢谢.

size binary microprocessors

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

这是MSDN文档中的错误吗?

这是MSDN链接来自http://msdn.microsoft.com/en-us/library/s3f49ktz(v=VS.80).aspx

它表示:unsigned int:4byte Value of Value 0到4,294,967,295

因此我的测试代码:

void main(void) 
{       
    unsigned int sum;   //4byte, 32bit
    sum = 2147483648;  //2^31 represent by 1 followed by 31 0s
    printf("sum is %d\n",sum); 
    sum = sum -1 ;     //2^31-1 represent by 0 followed by 31 1s
    printf("sum is %d\n",sum);
    getchar();
} 
Run Code Online (Sandbox Code Playgroud)

我肯定4,294,967,295 = 2 ^ 32-1,printf会打印"0",转储最重要的一点我觉得MSDN应该写的值范围:0到2147483647 是吗?

c c++ microprocessors

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

LDA:在8位寄存器中插入16位?这是什么意思?

我已经读过,在8085,累加器是一个8位寄存器.那么下面的指令怎么样才是真的:

LDA address
Run Code Online (Sandbox Code Playgroud)

其中address是LH顺序的"16位"地址

如何在8位寄存器中插入16位地址?

assembly microprocessors 8085

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

MOV BL,[AX]错误

可能重复:
NASM 16位Intel

我正在为微处理器课程中的简单微处理器编写汇编代码.我正在编写一个程序:对从地址300开始存储在内存中的六个元素求和,但忽略那些80或以上(>=80h)或20十六进制或以下(<=20h)的那些元素.在6次比较后,程序应该停止甚至是否添加数字.

这是我的代码:

    E 300 30 40 50 60 70 75
    A 100
100:MOV AX,2FF
103:ADD AX,1
106:CMP AX,306
109:JAE 11C
10B:MOV BL,[AX]
10E:CMP BL,20
111:JBE 103
113:CMP BL,80
116:JAE 103
118:ADD CL,BL
11A:JMP 103
11C:INT3
Run Code Online (Sandbox Code Playgroud)

但我在这一行收到错误:

10B:MOV BL,[AX]
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么?

assembly microprocessors systems-programming x86-16

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

如何对A寄存器进行异或,清除Z80中F寄存器的进位?

我正在读一本关于Zilog Z80处理器的书,在这本书中,只要作者想要清除进位,原因可能是他做了以下任何一种情况:

XOR A
AND A
OR  A
Run Code Online (Sandbox Code Playgroud)

这对F寄存器中的C位有何影响?换句话说,如何对某个寄存器(A)执行操作会影响另一个寄存器(F)?

assembly z80 xor microprocessors

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

两个时钟环计数器与verilog

我正在尝试编写一个滚动移位/环形计数器,它将两个开关作为verilog中的时钟.

我的代码如下:

module roll(CLK1, CLK2, LEDS);
input CLK1;
input CLK2;
output [3:0] LEDS;
reg [3:0] LEDS;


initial 
begin
LEDS = 4'b0001;
end


always@(posedge CLK1 or posedge CLK2)
begin
if(CLK1)
begin

         LEDS[3]<=LEDS[2];
         LEDS[2]<=LEDS[1];
      LEDS[1]<=LEDS[0];
         LEDS[0]<=LEDS[3];
end

// Roll Right
if(CLK2)
begin
         LEDS[3]<=LEDS[0];
         LEDS[2]<=LEDS[3];
         LEDS[1]<=LEDS[2];
         LEDS[0]<=LEDS[1];

 end
end
endmodule
Run Code Online (Sandbox Code Playgroud)

我尝试使用两个always块,但后来发现我不能这样做.当我posedge CLK2always声明中,我的FPGA上的LED都保持不变.

verilog microprocessors

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

如何从汇编代码中判断微处理器的架构?

我有一个我正在尝试逆向工程的设备。我试图避免打开物理设备,所以我在进行固件更新时嗅探了收到的数据包。但是我不知道这个微处理器是什么架构。

这是一个示例:

df f8 0c d0 01 f0 06 f8 20 48 20 47 31 15 06 20 f8 f5 03 20 09 4b 1e f0 04 0f 1c bf ef f3 09 80 18 47 ef f3 08 80 06 49 06 4a 88 42 01 d8 90 42 02 d8 8d 46 4f f0 20 20 18 47 20 20 51 77 03 20 f8 f5 03 20 70 e2 03 20 30 b4 50 e8 01 2f …

assembly reverse-engineering machine-code microprocessors

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

我为什么要在2018年学习汇编语言?

我是计算机科学专业的学生.在我的第五学期,我必须学习汇编语言.在我班上6/7周后,我才知道这种汇编语言学习将教会我关于微处理器的知识.但我想知道2018年学习集会有什么优势???

assembly microprocessors emu8086

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

创建处理器

这是我在大学的最后一个学期,副课叫做微处理器的体系结构和编程,教授写了这段代码,我只是无法理解他在做什么。尤其是有面具的部分。这是代码。谁能帮我理解一下吗?

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>


uint32_t Instruction_Memory[0x2000];
uint32_t PC = 0;

uint32_t Registers[32];

uint32_t Data_Memory[0x3000];

uint32_t get_instruction(uint32_t input){
   uint32_t temp = input/4;
   return Instruction_Memory[temp];
}

void print_registers() {
   for (int i = 0; i < 4; i++) {
       for (int j = 0; j < 8; j++) {
           printf("x%d: %x \t", i*8+j, Registers[i*8+j]);
       }
       printf("\n");
   };
};

uint32_t get_bits(uint32_t input, int start, int numberOfBits){
   uint32_t t4 = input >> start;
   uint32_t mask = (1 << numberOfBits) - 1; …
Run Code Online (Sandbox Code Playgroud)

c cpu processor cpu-architecture microprocessors

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

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