emu8086相关内容

汇编语言编号:MOV AX、1 ASCII或整数

与 num db 1 mov ax,1 和mov ax, num 执行mov ax,1时是ASCII还是整数? 我的意思是,数字不是从键盘插入的,它是预定义的,它可以要求将其转换为整数吗?是ASCII吗? 推荐答案 ASCII是一种编码类型,即您应该如何解释某些数值,如“33是感叹号”... 但CPU不知道ASCII,mov al,33只是将al寄存器设置为位模 ..
发布时间:2022-09-05 21:57:37 其他开发

检查正数集合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 其他开发

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

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

汇编中的随机数

我是汇编新手,想知道如何在 EMU8086 中编写程序,在每次运行时打印不同的随机数.不使用中断可以做到吗? 解决方案 如果您使用的是真实版本的 DOS(不是 EMU8086)@fuz 方法是您可以做到的方式,它不需要中断.您只需在 BIOS 数据区(BDA).该位置的值是一个 32 位值,表示自午夜以来的计时器滴答数.不幸的是,EMU8086 不支持这种方法. 要在带有中断(系统调 ..
发布时间:2021-12-18 09:24:10 其他开发

程序集 8086 中的图形模式

我有一个名为 average 的变量,在我的 DATASEG 中,它每次都会改变,因为用户每次输入不同的输入.我想要做的是转到图形模式(VGA),然后在那里打印您的平​​均值是:然后平均值我知道如何更改为这样的图形模式: mov ax, 13h整数 10 小时 打印平均值后,如果平均值高于 75,我想打印在下面 你是个好学生,继续努力,如果不是.别担心,你会好起来的!提前致谢. 解决方案 ..
发布时间:2021-12-18 09:08:18 其他开发

在装配中显示时间

你好,我试图显示实际时间小时/分钟/秒,这是我的代码示例: MOV AH, 2ChINT 21hMOV AH, 0EhMOV AL, CHINT 10hMOV AL, 3AhINT 10hMOV AL, CLINT 10hMOV AL, 3AhINT 10hMOV AL, DHINT 10h退 在这里你可以看到控制台显示的内容 解决方案 查看 x86 标签 wiki 用于指令集参考手册 ..
发布时间:2021-12-18 08:49:18 其他开发

在汇编语言中得到错误的结果

org 100h.model 小.数据无功数据库?msg db 10,13,'$'.代码;在此处添加您的代码主程序mov ax,@datamov ds,axmov ah,1 ;输入第一个数字21 小时子 al,48mov var,almov ah,1 ;输入第二个数字21 小时子 al,48多变量;两个数相乘子 al,48 ;转到 ASCII 值mov dl,al移动啊,2;打印结果21 小时移 ..
发布时间:2021-09-29 19:43:55 其他开发

组装8086;浮点数,加,减

我需要一些资源来了解有关浮点数的更多信息,我需要在 emu8086 环境 .... 非常感谢任何帮助 解决方案 据我所知,emu8086不模拟带有 8087 FPU 的机器. 您所做的任何浮点运算都必须是纯软件,不能使用 fld/fadd/fstp 或任何通常的遗留物1 x87 说明. 如果你想在实模式下使用 FP 指令,你最好的选择是像 DOSBox 或 BOCHS 这 ..
发布时间:2021-09-29 19:43:07 其他开发

为什么中断 int 21h 在写入程序执行期间填充的字符串后忽略所有字符串?

我正在尝试打印两个 16Bit 值的总和,因此我正在计算总和,然后构建包含它的字符串,但问题是在我打印所述字符串后任何写入中断 mov ah,09 int 21h 完全被忽略了,我使用的是 emu8086,这是代码 org 100hmov ax,2000mov bx,3200添加 ax,bxmov si,offset 结果+5mov [si],'$'mov bx,10填:十二月移动 dx,0di ..
发布时间:2021-09-29 19:42:49 其他开发

使用 8086 汇编计算 10 的阶乘

我一直在尝试使用汇编语言来解决这个问题.问题是我不能存储 10 个!在 al 中,我的代码用于查找 5 的阶乘.如何存储 10 的结果!在寄存器中?当我找到 5 的阶乘时,我可以在 al 中清楚地看到结果,因为 120 可以存储在 al 中. 任何帮助将不胜感激. 这是我的 5 代码! org 100h.数据ANS 数据库 ?.代码主程序移动轴,@DATAMOV DS,AXMOV ..
发布时间:2021-09-29 19:42:46 其他开发

为什么变量名是“name"不允许在程序集 8086 中使用?

当我尝试声明一个名为“name"的变量时,它不起作用,它给了我一个错误,这个有错误.有以下解释 (22) 错误的参数:MOV BL, name(22) 十六进制可能没有零前缀;或没有“h"后缀;或地址错误;或未定义的 var: name 这是我的代码 ;多段可执行文件模板.数据段;在此处添加您的数据!pkey db "按任意键...$"名称数据库“我的名字"结束堆栈段dw 128 重复 (0 ..
发布时间:2021-09-29 19:42:15 其他开发

x86 为什么我在移动变量时总是在 al 寄存器中获取 CD

标题说明问题.但基本上每次我用MOV指令用一个变量来注册寄存器显示CD.但是当我使用实际数字时,寄存器会显示数字? mov ax, @data 是否意味着将数据段内存地址移动到 ax 寄存器并且它是否必须专门为 ax 寄存器.或者,如果我想使用 bx 寄存器中的变量,我可以做一些类似 move mov bx, @data 的事情.请回答 为什么我必须做 mov ds, ax ds 做什 ..
发布时间:2021-09-29 19:33:05 其他开发

该汇编指令的含义是什么?

写下面几行是什么意思? OR AX,AXJGE标签 据我所知,OR 不是比较运算符.而且,像“JGE/JE/JL"这样的分支语句只能在我在 CMP 的任何比较过程之后使用它们时才能使用. 解决方案 根据一个值设置 FLAGS 是 cmp ax, 0 的替代方案, 但也做同样事情的首选方法是test ax,ax. or 指令是按位运算,不是比较,所以你首先是对的. 但是关于 ..
发布时间:2021-09-29 19:31:55 其他开发

EMU8086 将 32 位数字除以 16 位数字给出意外的 0 余数

我试图使用 emu8086 工具将(无符号)8A32F4D5 除以 C9A5.我预计商为 AF73H,余数为 94B6H.编写以下代码后,我得到了正确的商数,但余数变为 0000h.我错过了什么吗? .MODEL 小.堆栈 100 小时.数据.代码主程序;初始化DS移动轴,@DATAMOV DS,AX;在此处输入您的代码MOV DX, 8A32HMOV AX, 0F4D5HMOV BX, 0C9 ..
发布时间:2021-09-29 19:30:30 其他开发

8086 随机数发生器(不只是使用系统时间)?

我正在使用程序集 8086emu,我需要一个数字生成器来生成 8 个数字. 我尝试使用@johnfound 的这段代码: RANDGEN: ;使用系统时间生成一个rand no兰德开始:MOV AH, 00h ;中断获取系统时间INT 1AH ;CX:DX 现在保存自午夜以来的时钟滴答数mov ax, dx异或 dx, dxmov cx, 10div cx ;这里 dx 包含除法的余数 - 从 ..
发布时间:2021-09-29 19:29:44 其他开发

汇编语言emu8086的回文程序

我正在尝试完成我的微处理器课程的最后一个实验室练习,并且真的可以在这方面得到一些帮助.工作是用我自己的代码填充注释的空行.任务如下: **Task 2. 测试字符串是否为回文**修改前面的程序,使其检查字符串是否为回文.补充以下程序.添加缺少的说明.包括“emu8086.inc";程序开始组织 100 小时jmp开始;内存变量:msg3 db 0ah,0dh,"字符串是回文.",0msg2 db ..
发布时间:2021-06-13 19:59:13 其他开发

为什么在x86汇编中操作数必须在一行中具有大小而在另一行中没有

看图片,在第34行,我必须编写 word ptr 才能起作用,而在第44行,我没有写. 这是为什么? 编译器不知道0020h是一个单词,就像0FF20h是一个单词一样吗? 将0添加到0020h使其变为00020h或类似的方法也不起作用. 我在80x86上使用MASM.emu8086,也在dosbox v0.74上尝试过 解决方案 差异是因为您的汇编器奇怪而危险地接受 0FF ..
发布时间:2021-05-31 20:19:20 其他开发

在组装中制作乒乓游戏时,如何一次输入多个按键?

我是一个初学者,所以这段代码可能没有什么用,我为此使用了 int 16h ,但对此 int 知之甚少.我刚刚发现您一次不能进行多次击键.有帮助吗? 这段代码的问题在于,一次只能移动一块板,而我俩都需要.如何检查多个输入? 以下是任何人想要的代码: IDEAL小型号堆栈100hDATASEG;--------------------------;您的变量在这里;----------- ..
发布时间:2021-05-28 19:22:50 其他开发