x86

    1热度

    2回答

    我在x86 MASM汇编程序中编写程序,并且需要访问启动程序时提供的命令行参数。我在多个网站上阅读,我可以在Program Segment Prefix或PSP上访问这些参数。 作为一个测试,我尝试打印提供的参数的第一个字符。我的问题是(取决于我如何访问PSP),我得到了错误的字符(或者根本没有字符)。 ... mov ah, 21h int 50h mov ds, dx mov a

    1热度

    1回答

    任何人都可以仔细检查这一点,看看我是否做得对吗? 1. create the following variables in the data section. Declare them as WORD (not BYTE or DWORD) num1 (initialize to 0FACE hex) num2 (initialize to 0FEED hex) In

    0热度

    1回答

    我目前在emu8086中创建一个简单的游戏程序。使用箭头键,我可以在每个我想要的方向上打印星号。问题是有一个要求,如果我已经打印了5个星号,星号的尾部应该被删除,以便我的星号的身体将保持每个打印5个。 从我的研究中,主要使用的数组,但我不知道如何操纵这个数组,因为我不知道如何跟踪数组的尾部和位置,以便能够打印空间以删除尾部。 ,如: 1. * 2. * 3. * 4. * 5. * 点

    1热度

    1回答

    我需要显示问题,用户将回答Y或N.我共有5个问题,1个问题有20个问题。我需要5 * 20 = 100这样的东西。 当用户回答Y时,countY db 0将增加20 我已成功计算标记,但如何显示为标记是两位数(例如80),它也可能是3位数号码(例如100)。 Q1: mov ah, 09h lea dx, msgq1 int 21h mov ah, 01h

    2热度

    1回答

    我尝试了解Michael Sikorski所着的书“实用恶意软件分析”的示例。有一个关于反拆卸技术的例子,我不理解。它说一种常见的技术是创建两条条件指令,即如果跳转到零(JZ)并跳转(如果不是零)(JNZ),它们一起考虑实际上只是一个无条件指令(这对我来说很清楚)。以下是反汇编程序创建的两个可能结果的图形。 下面引用指的是图中1: 在本例中,紧接在两个条件跳转指令的指令似乎是在一个调用指令(调用)

    2热度

    1回答

    我目前正在学习汇编编程,遵循书籍“x86语言处理器汇编语言第7版”。 在这本书中,作者试图解释overflow register flag是如何设置 有两句话在这一段,我是不确定的。 ,其执行的最高位位置的值进行异或运算与所述进位结果的高比特 1 XOR 0产生= OF 1 其他问题关于第2点:我知道XOR如何工作,但我不确定哪个位是1和0在1 XOR 0所指的。 这实际上是如何工作的?我对作者使

    -2热度

    2回答

    我试图从CSCI 4971 course了解逆向工程,我正在努力解决一个特定的实验问题(fmt_string)。 我应该在某处找到并打印出旗帜商店。这里的源代码的样子: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #define LINK "\x1b\x5b" "34m"

    -3热度

    1回答

    我正在学习装配/倒车。例如,我只用一个参数来查找idiv和imul的文档,同时也明白哪个参数是第一个和最后一个是在sub/add中。我已被给予以下代码(与我的理解在评论) start: mov $1024, %rax ; move int value 1024 to register rax mov $4096, %rbx ; move int value 4096 to register r

    0热度

    1回答

    我很新装配,现在我试图了解cmp如何工作。下面要说的写在wiki: cmp arg2, arg1 执行ARG1和ARG2之间的比较操作。比较 通过从arg1(有符号)减去arg2来执行,结果 可以被称为Temp。 温度然后被丢弃。 这是什么意思“Temp然后被丢弃”?它存储在哪里?我怎样才能访问这个比较结果?有人可以解释吗?

    2热度

    1回答

    一旦用户输入了正确的密码,我想显示“Hello World”,但是如果密码不正确,程序会提示输入Yes(Y)/ No(N),如果用户输入Yes Y),程序将给用户三次机会显示“Hello World”,如果用户输入了No(N),程序将退出。 我的问题是,每次我选择是(Y),该程序保持循环,其刚刚结束,如果我进入否(N), 这里是我的代码(我已经跳过某些部分) ... org 0100h