x86-16相关内容

汇编语言8086这段代码是什么意思?

我有这个代码,我想问一下如何读取它,以了解程序到达第24行后AX内部的值是什么 在循环内,当 MOV AX,[SP+4d] 它会改变AX的值吗?到SP+4 我知道在节目结束时,斧头是15的六角形,只是想知道为什么? 非常感谢 推荐答案 可能您的老师喜欢欺骗您? mov ax, [sp + 4d]和mov [sp + 4d], ax指令不可编码(*)。它们的语法是错误的,因为SP寄存器 ..
发布时间:2022-08-23 22:26:34 其他开发

ASM 16位将输入缓冲区字符串转换为数字

也许有人能帮我。我正在尝试打印与用户输入的数量相同的“”。所以我需要把字符串转换成数字。我尝试在循环中执行,但遇到一些问题,我的代码不能正常工作,它打印了65535‘’基本上这是最大值。也许有人能解释一下我的问题出在哪里? .MODEL small .STACK 200h .DATA input DB 4, ? , 4 dup (?) Symbol DB '*$' .CODE S ..
发布时间:2022-08-23 22:17:46 其他开发

压缩BCD 4位加法(8086汇编程序)

我在编写这段代码时遇到了麻烦。有没有人能给我个解决方案(我懂BCD数字,等等,我就是写不出能用的代码)? 它应该将两个打包的BCD数相加(每个4位;它们位于地址op1和op2),并将结果放入地址res。 提前感谢:) 推荐答案 使用daa(加法后小数调整),您可以直接将它们相加,而不需要往返于二进制整数。 类似的东西(完全未经测试) mov al, [OP1] ad ..
发布时间:2022-08-23 22:06:46 其他开发

当半字节之间存在借入时,为什么辅助标志为0

使用以下代码片段在EMU8086上进行测试: MOV CX, 1527H SUB CX, 44H 仿真器显示AF为0 1527 - 44 ======== 14E3 手工做减法时,我们得到7-4=3,这里没有问题。 然后2-4,然后我们不得不向下一小块借钱。因此,根据我的理解,AF应该是1。 推荐答案 AF是根据从第3位到第4位的进位(或借用)设置的。 ..
发布时间:2022-08-23 21:45:40 其他开发

为什么我的汇编子例程被调用,即使我没有在引导加载程序中调用它

我目前正在开发一个bios引导加载程序,我是汇编语言的新手。我一直在阅读它,我了解它的工作原理,但有些事情涉及到我的汇编语言代码的执行顺序,我不理解。 那么基本上我的subrouteprint是如何被调用的,即使我没有调用它。 第二,它如何分配bios幻数,如果它一直位于文件的末尾,即使我没有到达。 如有任何帮助,我将不胜感激,谢谢。 [ORG 0000:7C00] global ..
发布时间:2022-08-23 21:37:39 其他开发

在汇编中的乘法运算,如何使用2个寄存器的全部结果?

如果我的MUL bxbx包含任何值,则结果将在dx和ax之间拆分,那么我如何使用该结果? 我认为使用eax可以修复它,但不行,因为我们无法访问16个高位。 我们可以声明32位变量,但如何使用它? 推荐答案 这里有一个很好的解释: https://www.tutorialspoint.com/assembly_programming/assembly_arithmeti ..
发布时间:2022-08-23 21:22:58 其他开发

16位实数模式下的物理地址公式:为什么将数据段乘以16?

physical address=16*selector+offset 但我不知道为什么要用16乘以选择器? 推荐答案 为了与Z80“程序员兼容”,但仍能使用超过64 KiB的内存,早期的英特尔处理器引入了内存分段。在添加到16位偏移量之前,16位段将左移4位(意思是乘以16,不是64),从而得到20位地址。 对于习惯于Z80的程序员来说,所需要的只是使用操作系统提供的段,他们将能 ..
发布时间:2022-08-23 21:11:36 其他开发

在8086汇编语言(16位模式)中读出堆栈

我希望能够使用正常的ASM功能将某些值推送到堆栈。 例如 push ax push bx push cx push dx 我希望使用堆栈框架以任何顺序访问它们。 假设我想按C、B、A、D的顺序弹出这些,而不是只需要做... pop dx pop cx pop bx pop ax 使用SP/BP执行此操作的最佳/最有效方法是什么,这样我就可以在需要的时候抓取东西,而不 ..
发布时间:2022-08-23 21:07:57 其他开发

如何跳过程序集x86中字符串开头的空格

如果我想跳过字符串开头的所有空格,并在代码到达字符串的第一个符号时开始处理字符串,我应该编写什么循环。如果我有一个类似 的字符串 a=' s o m e word' 代码应在到达“%s”时启动。它应该是某种循环,但我仍然不知道如何正确编写它。 我的尝试: mov si, offset buff+2 ;buffer mov ah, [si] ..
发布时间:2022-08-23 20:59:28 其他开发

检查正数集合8086

我正在尝试编写汇编代码8086我有两个大小为10的数组X和Y,我想输入一个数字并检查其正y是否为1,如果为负则为0 但我的代码只显示了我输入的数字,但我希望它像这个例子一样。 示例: X : 2 -5 -7 8 -4 9 11 -12 90 -50 Y : 1 0 0 1 1 0 1 1 0 1 0 我写道: .MODEL SMALL .DATA x db 10 dup ..
发布时间:2022-08-23 20:52:08 其他开发

推送到全堆栈8086程序集

推送到完整堆栈的物理后果是什么 令人惊讶的是,当只为堆栈分配2个字节[1个字]并将三个字推入不同的寄存器时,这一过程没有任何错误 推送第二项时,我应该怎么说堆栈内容 下面是堆栈段定义: Stack_segment_name segment para stack db 2 dup(0) ;define your stack segment Stack_segment_name ends ..
发布时间:2022-08-23 20:43:22 其他开发

跳过未知操作码:66,不是8086指令-尚不支持

我正在使用emu8086。我有一个问题,这个问题让我在从六进制输入转换后,在七个分段显示器上显示我们看到的内容。我应该用十六进制输入我的数据,如果它与七段表的十六进制输入相匹配,它会显示十进制数,例如。3FH=0,06H=1。我使用数组来实现这个程序。以下是工作源程序: ORG 100H MOV AL,[1840H] ;input in this memory locatio ..
发布时间:2022-08-23 20:32:27 其他开发

如何将字符串放入变量中

我正在用汇编语言8086处理器编写程序,但我有一个疑问。我想将一个单词移到我创建的字符串中,但汇编程序显示错误:error A2004: constant value too large。 声明: Fich db 'menu.txt',0 执行此操作: mov Fich,'menu.txt' 推荐答案 在8086汇编程序中,不能使用mov语句将字节字符串移动到内 ..
发布时间:2022-08-23 20:16:44 其他开发

如何在循环中使用WriteHexByte显示到屏幕上?

我在启动时显示了displayChar字符。现在如何添加WriteHexBytes,然后在循环中使用WriteHexByte和WriteHexWord将其显示在屏幕上。 *WriteHexByte 需要8位寄存器 通过调用 ConvertHexNibble和使用 WriteChar *WriteHexWord 需要16位寄存器或内存 参数,并显示每个字节 通过调用WriteHexByt ..
发布时间:2022-08-23 20:08:59 其他开发

什么是段落(当提到记忆时)

我觉得问一些看起来很容易查找的问题很愚蠢,但正如你可能猜到的那样,搜索段落会得到很多与我想知道的无关的结果。 这几天我一直在学习汇编(编写一个很小的引导加载器,诸如此类的练习),我看到了一些对称为段落的内存块的引用。我有一个遥远的记忆,一个段落是两个词,但我真的不确定。究竟什么是段落,它的意义是什么? 推荐答案 一个段落有16个字节。它主要与x86实数模式有关(如果不是唯一的), ..
发布时间:2022-08-23 19:59:22 其他开发

8086汇编中的星号金字塔

%1 我应该在8086汇编语言中做这个练习 * *** ***** ******* ********* 但作为输出,我只得到第一个星号。问题出在哪里? 他们告诉我用POP和PUSH,但没有学习过,我不知道怎么做。我希望有人能给我一个有效的帮助来解决这个代码。我还在DOSBOX上编写代码,这是我的代码: .MODEL SMALL .STACK .DAT ..
发布时间:2022-08-18 18:02:25 其他开发

8086中的堆栈段和堆栈指针

我对堆栈段(Ss)和堆栈指针(Sp)寄存器有一点困惑。 当堆栈为空时,sp值是否等于ss值? 我读到,当我们把一个字(2字节)压入堆栈时,sp递减2,如果第一个语句为真(sp=ss),那么我可以说如果堆栈不为空,堆栈指针的值总是小于或等于堆栈段的值这是真的吗?? 如果我们将一个值影响到sp,使其大于ss,会发生什么??即: MOV SS,200小时 移动SP,400h MOV AX,1010h 推 ..
发布时间:2022-07-25 21:52:07 其他开发