小编Mox*_*oxy的帖子

汇编语言 - 将字符与XOR相结合

我正在编写一个程序,其中的要求如下:

有一个名为Name的字符串变量,它设置为您的全名,包括空格.
仅清除AL寄存器,而不是EAX寄存器的其余部分.
循环遍历Name变量中的每个字符.
使用XOR命令组合每个字符.
将最终的XOR结果存储在AL寄存器中.
在程序结束时包含DumpRegs命令.

我一直在努力使这一点正确并且一直试图使用本书中的例子,但是,我只是不断收到错误.这是我有的:

INCLUDE Irvine32.inc


.data

name BYTE "Joe Smith" , 0   ; 
temp BYTE SIZEOF name DUP(0)

.code
main PROC
    mov al,0
    mov esi,0
    mov ecx,SIZEOF name

Combine:
    xor al,name[esi]
    inc esi
    loop Combine

    Call DumpRegs

    exit            ; exit to operating system
main ENDP
END main
Run Code Online (Sandbox Code Playgroud)

我收到错误: 在此输入图像描述

assembly masm xor irvine32

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

汇编语言新行

我是汇编语言编程的新手,我希望我的输出有单独的行,以便更容易阅读,但是,我编写了代码并让它工作,但后来被告知我实际上无法使用Irvine 程序来创建一个新的行。我的教科书只使用了尔湾的“Crlf”,而其他人在本网站上提出类似问题的代码完全破坏了我的程序,所以现在我迷路了。

我尝试过的一个是:

mov ah, 0Eh       ;print new line sequence
mov al, 0Dh
int 10h
mov al, 0Ah
int 10h
Run Code Online (Sandbox Code Playgroud)

无论如何,这里仍然是我的 Irvine 函数的完整代码。有人可以帮助我在不使用“call Crlf”的情况下获得我正在寻找的输出吗?或者让我知道为什么上面的代码破坏了我的程序?我确定我遗漏了一些东西。

INCLUDE Irvine32.inc


.data
prompt BYTE 'Enter a positive integer: ', 0     
report1 BYTE 'The sum is: ', 0              
report2 BYTE 'The product is: ', 0
report3 BYTE 'The power result is: ', 0
temp DWORD ? ;
.code

main PROC
; Main program control procedure.
; Calls: GetInteger, AddNumbers, MultiplyNumbers,
;       WriteInt, CalculatePower

call GetInteger             ;Get …
Run Code Online (Sandbox Code Playgroud)

assembly masm line irvine32

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

标签 统计

assembly ×2

irvine32 ×2

masm ×2

line ×1

xor ×1