小编Ros*_*dge的帖子

使用SSE指令点产品性能

是它更快地通过的装置计算两个向量的点积dpps指令形式SSE 4.1指令集或通过使用一系列的addps,shufpsmulps从SSE 1?

optimization performance x86 assembly simd

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

1:汇编语言是什么意思?

我正在阅读RISC-V测试模式的源代码.在riscv-test.h中有一个宏定义,

我想知道1:这段代码意味着什么:

#define RVTEST_CODE_BEGIN                                               \
        .section .text.init;                                            \
        .align  6;                                                      \
        .weak stvec_handler;                                            \
        .weak mtvec_handler;                                            \
        .globl _start;                                                  \
_start:                                                                 \
        /* reset vector */                                              \
        j reset_vector;                                                 \
        .align 2;                                                       \
trap_vector:                                                            \
        /* test whether the test came from pass/fail */                 \
        csrr t5, mcause;                                                \
        li t6, CAUSE_USER_ECALL;                                        \
        beq t5, t6, write_tohost;                                       \
        li t6, CAUSE_SUPERVISOR_ECALL;                                  \
        beq t5, t6, write_tohost;                                       \
        li t6, CAUSE_MACHINE_ECALL;                                     \
        beq t5, t6, write_tohost;                                       \
        /* if …
Run Code Online (Sandbox Code Playgroud)

assembly gnu-assembler riscv

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

将jmp指令用于非常量TSS段

JMP指令参考.

根据文档,我们可以执行jmp一个恒定的远段:

jmp 0x18:00
Run Code Online (Sandbox Code Playgroud)

这里,0x18是GDT全局描述符表中的有效段选择器.

jmp 可以与包含有效GDT条目的段寄存器一起使用,该条目是代码/数据段描述符:

mov es, 0x18
jmp es:0x0
Run Code Online (Sandbox Code Playgroud)

这里0x18是TSS(任务状态段)描述符,当跳转到时,CPU执行任务切换,自动将其状态保存到当前TSS中,然后填充新TSS中保存的状态.

但是,TSS是系统段描述符,因此无法加载到任何段寄存器中(如英特尔文档所建议).那么,如何在运行时使用动态分配的TSS跳转到任务?

我能想到的唯一方法是使用该iret指令,但我觉得它像一个hack,因为我需要修改链接字段,然后在EFLAGS中设置NT位以执行反向链接任务切换.

x86 assembly operating-system kernel gnu-assembler

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

在程序集中删除文件

我试图删除汇编代码(NASM)中的文件,但我在"mov dx,file_name"部分遇到错误"重定位被截断以适应数据".仅供参考,我试图删除"input.txt"文件的文件确实存在于我的文件夹中.我对这类问题不太确定.让我知道我错过了哪里.

section.data
; filename
file_name           DB  "input.txt"

section .text
    global _start

_start:
    nop
    mov dx, file_name   ; getting an error : relocation truncated to fit R_386_16 against .data
    mov ah,41h          ; function 41h - delete file
    int 21h             ; call DOS service

endIt:
    nop
    ;Exit the program back to linux legally
    mov eax, 1                  ; exit system call value
    mov ebx, 0                  ; exit return code
    int 80h                     ; Call the kernel
Run Code Online (Sandbox Code Playgroud)

x86 assembly nasm

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

我无法在具有直接内存访问的 8086 程序集中使用中点算法绘制圆

我有一项任务,要求我使形状移动并用颜色改变形状。我一开始就没有成功地画出圆的八分圆。假设使用 Intel 8086 汇编语言,在 DMA 模式下使用 TASM。(模式 19)我在想如果我能完成一个圆圈,我可以给它设置动画并改变形状。我无法弄清楚是算法错误还是代码错误。

.model small
.stack 256

.code 
startaddr   dw  0a000h  ;start of video memory   
color   db  3 
xc dw  160
yc dw 100
r dw  50 ; radius
x dw 0 
y dw 50 ;radius
pk dw 1
temp dw 1

plot macro r1, r2, r3 ;x,y,color
    mov ax, r2
    mov bx, 320
    mul bx
    add ax, r1
    mov di, ax
    mov al, r3
    mov es:[di], al
endm

start:    
  mov ax, yc
  add y, …
Run Code Online (Sandbox Code Playgroud)

assembly tasm x86-16

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

在我的 Windows .bat 文件中运行 Python 脚本

我有一个 .bat 文件,在我做的文件中:

  1. cd 到目录
  2. 将文件复制到另一个目录
  3. 跑过to-csv.vb在文件上
  4. 删除了一些文件
  5. cd 到另一个方向
  6. 运行我的 Python 脚本。

我被困在第 6 步。这是我的代码:

cd "Python\test1"
copy  "Python\test1\"*.xls*  "Python\test1\move"

FOR /f "delims=" %%i IN ('DIR *.xls* /b') DO to-csv.vbs "%%i" "%%i.csv" 
del "H2*.csv"
del "H6*.csv"
del "H3*.xlsx"

cd "H:\UCLAHealth\HIIN\Data Process\Python" #my python script1 is in this directory 

python script1.py  #this line didn't work.  
Run Code Online (Sandbox Code Playgroud)

我可以执行步骤 1-5,但卡在步骤 6 上。在 .bat 文件中运行 Python 脚本的正确语法是什么?

python windows cmd batch-file

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

如何在 Windows 中运行 json-server?

我已经在 Windows 中使用 npm 安装了 json-server 。现在,当我尝试从 Windows 命令提示符运行 json-server 命令时,出现以下错误: json-server is not recognized as an internal or external command, operable program or batch file.

有人知道这里需要更改什么吗?

windows cmd json-server

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

为什么我在Powershell和C#之间得到不同的结果

我有一种将日期时间转换为DOS格式的方法

它最初是用C#编写的,但是我已经将其转换为powershell。

两者的相同输入将返回不同的结果。我正在努力寻找原因。

Powershell方法

Function ConvertTo-DOSDate {
    Param(
        [DateTime]$dateTime

    )

    Process {
        Try {

            [int] $ret = (($dateTime.Year - 1980) -band 0x7F);
            $ret = ($ret -shl 4) + $dateTime.Month;
            $ret = ($ret -shl 5) + $dateTime.Day;
            $ret = ($ret -shl 5) + $dateTime.Hour;
            $ret = ($ret -shl 6) + $dateTime.Minute;
            $ret = ($ret -shl 5) + ($dateTime.Second / 2); # only 5 bits for second, so we only have a granularity of 2 sec.
            return  [uint32] $ret;

        }
        Catch { …
Run Code Online (Sandbox Code Playgroud)

c# powershell datetime bit-shift

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

学习控制台命令的重要性

我正在为全新的计算机工程专业的学生教授入门课程.本周我将教授基本的Windows控制台(命令提示符)命令和批处理文件(以及几周后的unix).去年,一些学生抱怨说"已经没有必要了".由于我坚持教它,我有一些理由.但我想听听你们的意见.在我开始之前,我可以用什么理由来说服他们?

谢谢.

好的,现在几个答案之后,我想列出我教授基本控制台命令和基本批处理文件使用的理由.

  • 首先,它有助于了解幕后发生的事情.这对于未来的许多课程(如操作系统和网络)非常有用.
  • 学习Linux之前的一个良好开端.那么,为什么不首先使用Linux?因为他们中的大多数从未使用过除Windows以外的任何其他东西.(几周后我会教Linux和虚拟盒子)
  • 不要低估批处理文件.这也是UNIX shell脚本的一个很好的介绍.
  • 他们也在学习Windows上的C编程.所以他们可以使用system()的一些命令; 功能在他们的代码中.
  • 在他们的余生中,他们必须在不使用GUI的情况下执行许多任务.

编辑:在MS-DOS的原始问题中,我试图说的是Windows命令提示符和命令行.

windows command-line cmd batch-file

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

批处理文件 - X分钟后关闭计算机

我想制作一个批量文件,在几分钟内收集用户输入,并在时间结束后关闭计算机.

我知道如何在一段时间后关闭计算机,我一直无法将时间设置为用户输入.

windows cmd batch-file

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