8086相关内容

8086装配师

我有这个问题与code低于这个数转换成ASCII码“数字文本”。然而,code似乎在循环的'格'运code ;主程序 主要: MOV AX,为0x0000 MOV DS,AX;设置数据段寄存器 MOV SI,GreetString;设置数据段偏移 调用print_string;调用打印字符串程序 MOV SI,数据字;设置数据段偏移 MOV BL, ..
发布时间:2016-07-18 21:26:06 .NET Framework

何时会code。在数据段在此code执行?

我是汇编编程的初学者... 我在谷歌冲浪了很多。有很多的信息,但我还是不明白以下code。我将不胜感激,如果有人可以解释 MOV AX,DATA 我也搞不懂,当code,它是数据段present将在此计划执行。 承担CS:code,DS:DATAcode段 MOV AX,@ DATA MOV DS,AX ... ... code ENDS 数据段 ... ... ..
发布时间:2016-07-18 21:22:14 .NET Framework

在组装二维数组

我在数据段所限定的二维数组和两个一维数组(一个用于列总和和一个用于行总和)和i写道求和二维数组入一维数组的功能。 我同时使用EAX和EBX为指标的二维数组,但我的计划失败时,EAX或EBX becase的1和试图访问未知地址的内存。 如何解决在此行中访问内存: MOV EDX,[EBP + columnsSumArray +类型为DWORD * EBX] 这是我的程序: .386 .M ..
发布时间:2016-07-18 21:21:33 .NET Framework

做同样的事情推指令序列

我想知道是否有可能(如果有,如何)写的指令序列,将有作为推同样的效果。例如,如果斧的内容是1200,我做了推AX ,我可以用什么其他指令完成什么推AX 呢? 解决方案 一些其他的答案使用 [SP] 堆栈处理,但它不能在16位模式,也不能在32位或64位模式要么。然而,在32位模式下可以使用 [ESP] 和X86-64可以使用 [RSP] 对于内存寻址,但在16位模式没有内存寻址使用 SP ..
发布时间:2016-07-18 21:19:05 .NET Framework

读一个键盘,并使用微处理器显示它

MTS-88.C和I / O板-08有8个(八)7段显示器和船上的20键垫。该显示器由7- SEG.1编号至7- SEG.8和分别连接到端口B的PB7到PB0线。上显示一个7段字符显示一个字节已被写入到端口B的MSB 4位为7段显示的地址和LSB 4位的数据。所以,如果我们写58 H至端口B,则第六届七段显示屏将显示数据8。 20键垫从P01到P20的编号和被布置成5列和4行。最右边的列被连接到 ..
发布时间:2016-07-18 21:13:32 .NET Framework

8086汇编 - 除溢出

我尽量让组装一个简单的除法,但我得到“除溢出”错误。 我的简单code: CS:总和与CS:num是一个字节变量。 (DB) MOV AX,单词PTR CS:总和 MOV CL,10 XOR DX,DX DIV CL; 10分 MOV CS:NUM啊;蒙古包右端 不知道为什么 - 但正如我说 - 我无法正常devide 所以,你知道那是什么问题,该如何解决呢?谢谢! (我使用CS尊重 ..
发布时间:2016-07-18 21:13:29 .NET Framework

输出不以其全文显示[8086装配]

;每个字符的重复字符串中的数 .MODEL小 .STACK 100H 。数据 消息3分贝13,10“,输入字符串,最多200个字符:$” MSG4分贝“$” MSG5 DB 13,10“,按任何键退出',13,10,”$“ CRLF分贝13,10,“$” CHAR 0分贝 repet 0分贝 mone1 DW 0 ..
发布时间:2016-07-18 21:11:40 .NET Framework

A2004问题MASM32

我跟MASM32汇编问题 以下code是,我从MASM32教程复制一个Hello World的例子: .MODEL小 .STACK 。数据 消息DB“世界,你好!”,“$” 。code_main PROC MOV AX,SEG消息 MOV DS,AX MOV啊,09 LEA DX,消息 INT 21H MOV AX,4c00h INT ..
发布时间:2016-07-18 21:11:29 .NET Framework

指针和索引在英特尔8086大会

我有一个指向数组的指针,DI 是否有可能去的价值指向两个DI和另一个指针? 例如: MOV BL,1 MOV BH,10 INC [DI + BL] INC [DI + BH] 和,与此相关的,是有一条线运code交换两个寄存器的值? (在我而言,BX和BP?) 解决方案 有关16位程序,唯一支持的寻址方式是: [BX + SI] [BX + DI] [BP + SI] [BP + ..
发布时间:2016-07-18 21:11:02 .NET Framework

在打印组件3位数

这是我的打印功能,它应该输出3digit结果。我存储我的结果RES这是一个数据仓库。 push和pop固定我的问题,在打印前,现在我不知道哪里出了问题。 XOR AX,AX XOR BX,BX ;这把我3digit号100给了我,百位 MOV AX,RES MOV BX,100 DIV BX ;打印百位数 ADD AL,'0' MOV DL,AL PUSH AX; AX保存在栈上 ..
发布时间:2016-07-18 21:10:48 .NET Framework

如何设置在汇编语言8086 1秒的延迟

我的问题是,我已经写了code是应该的输出结果为一组连接到并行端口的LED。当我跑了code将其pretty多什么也没做。我的教练告诉我,code跑太快了,我的眼睛没有看到发生了什么。 我发现有一对夫妇的方式做一个延时,我试图循环NOP但我想我真的不能确定是怎么回事。有没有更好的办法? 我这里有code的一部分,在那里我有一个时间延迟加入到: 组织100HMOV AX,0 MOV DX,37 ..
发布时间:2016-07-18 21:10:24 .NET Framework

寄存器寻址模式VS直接寻址模式

我遇到了试纸这个问题。它指出, 这给定的寻址模式的比较快?为什么呢? 寄存器寻址模式 直接寻址模式 现在据我寄存器寻址模式应该快如寄存器是在计算机中最快的内存位置。这是正确的答案呢? 请大家帮帮忙。谢谢 解决方案 寄存器访问是最快的。但是,内存访问能够以最快的速度,如果你要访问的存储器中的数据已经在CPU的数据缓存。 ..
发布时间:2016-07-18 21:08:51 .NET Framework

在ASM 8086 ADC指令

当我使用 ADC 为〔实施例: AL = 01和BL = 02和CF = 1 当我这样做: ADC AL,BL 威尔 AL 是 3 或 4 ? (与 CF 添加或不?) 解决方案 有关 8086 ADC 指令几件事情语法:ADC DEST,SRC DEST:内存或寄存器 SRC:内存,注册,或立即 操作:DEST = DEST + SRC + CF 显然动作说,进位标志( ..
发布时间:2016-07-18 20:56:01 .NET Framework

解释AF标志在x86指令是如何工作的?

我有一点点的8086仿真器和我已经像一个长期的错误2年现在AF无法正常运行子内,并添加说明。 我现在计算其价值的方式是这样的8位数字和加减: uint8_t有基地= ...,SUBT = ... 基地=基本和放大器; 0xF的; SUBT = SUBT&放大器; 0xF的; //隔离底部蚕食 如果((int16_t)基SUBT大于7 ||(int16_t)基SUBT&下; -7){ ..
发布时间:2016-07-18 20:54:56 .NET Framework

从8086实模式存储器中读取,而使用“ORG为0x0000”

我一直在x86-16装配瞎搞和VirtualBox的运行它。出于某种原因,当我从内存中读取并尝试打印它作为一个人物,我得到了我的期待完全不同的结果。然而,当我硬code中的字符作为指令的一部分,它工作正常。 这里的code: 0 ORG 位16推字0xB800;在彩色显示器实模式文本屏幕的视频内存地址 推CS 流行DS; DS = CS 流行ES; ES = 0xB800 JMP启动;输入= ..
发布时间:2016-07-18 20:52:11 .NET Framework

字节PTR和字PTR的区别

我看到一个试纸以下问题, 问题 VarM DWORD ABBF01598h 给寄存器的内容人, BX 和 DL 执行后 MOV人,字节PTR VarM + 1 MOV BX,文字PTR VarM + 2 MOV DL,字节PTR VarM + 3 现在我知道被定义字PTR和字节PTR,但我不能皮卡他们的概念。 据我 人= B BX = 0 ..
发布时间:2016-07-18 20:50:48 .NET Framework

显示文本的视频内存0xb8000不使用C库

我在C.被编写内核我一直在使用GCC交叉编译器,写在Windows系统上和指定16位实模式。我没有可用的C库写的内核。我已经开始与一些code这是假设直接打印字符在屏幕上。下面是一个函数 kernel.c : INT的main() { 字符* SRC =(字符*)0xB8000000L; * SRC ='M'; SRC + = 2; * SRC ='D'; 返回0; } ..
发布时间:2016-07-18 20:42:54 .NET Framework

8086大会(TASM):显示一个ASCII字符值作为十六进制

**编辑澄清和“干净”code。 我试图接受来自键盘的字符(任何字符)和它的ASCII值转换为十六进制,然后显示它。 我知道如何从基数10转换为十六进制,但只是为了确保我没有使用不正确的术语: 如果我在我的ASCII值输入“C”,它的十进制值是63。63除以16(十六进制为基数为16)= 3.9375。保存3的商供以后使用。余*碱(0.9375 * 16)= 15。图15是十六进制字符“F” ..
发布时间:2016-07-18 20:41:07 .NET Framework

有多少种方法来设置一个寄存器为零?

我很好奇方法有多少种存在于x86汇编寄存器设置为零。用一个指令。有人告诉我说,他设法找到了至少10个办法做到这一点。 我能想到的是: 异斧,斧 MOV AX,0 和斧头,0 解决方案 有很多的可能性如何以斧头MOV 0下IA32 ... LEA EAX,[0] MOV EAX,0FFFF0000h //所有常量形成0..0FFFFh<< 16 SHR EA ..
发布时间:2016-07-18 20:35:23 .NET Framework