- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 8086 汇编方面没有太多经验,我想知道如果您不写起始标签 (start:
) 和该标签的结尾,程序会发生什么 < br/>(end start
)(围绕执行代码的标签)?
所以我的问题是这个标签是否是执行所必需的,当这些标签被排除在外时,代码是否访问了一些不应该访问的地址,这些围绕执行代码的标签是否与 start(=='{' ) 和 java 类中 main()
的结尾(=='}')?
*附加信息和结果
我正在编写一个程序来打印数组中包含的数字 1-5。我在添加和不添加标签的情况下进行了尝试,结果如下:
;assembly for printing an array of the integers 1-5
;data segment
data segment
NIZA db 1,2,3,4,5
ends
;code segment
code segment
start: ;the "start:" label
;setting ds and es
mov ax,data
mov ds,ax
mov es,ax
mov bx,OFFSET NIZA
mov cx,5
pecatenje_na_niza:
mov dl,[bx]
add dx,48d
mov ah,2
int 21h
inc bx
loop pecatenje_na_niza
mov ah,1
int 21h
mov ah,4ch
int 21h
end start ;the "end start" label
ends
1) start:
和 end start
包括:
2) start:
and end start
not included (相同的代码,但排除了标签):
最后输出全为零。
因为add dx,48d
这一行,所以打印是原样,所以它打印的都是00000
。顺便说一句,每次 mov dl,[bx]
执行时 DX 都会重置。
这就是我目前所能理解和找到的全部内容。
最佳答案
如果您不包含 start
,emu8086 显然会默认从头开始。由于您将数据放在那里,您的指令只是您的 NIZA
数组值被解释为代码。
1 00000000 0102 add [bp+si], ax
2 00000002 0304 add ax, [si]
3 00000004 050000 add ax, strict word 0
4 00000007 0000 add [bx+si], al
您可以看到您的字节 1-5,然后是一些零填充。 cpu 不关心你打算将它们作为数据,如果它们在执行路径中,它会尝试将它们解码为指令。
关于assembly - 如果不添加 start : and end start in EMU8086? 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902858/
我正在开发一个简单的java应用程序,它应该利用蓝牙发送数据。问题是,在编译时,我收到一个未检测到 BluetoothStack 的异常,因为我没有蓝牙设备。我听说 bluecove 的 jsr 82
我正在使用此命令从命令行向我的模拟器发送短信: adb emu sms send 8888 Hello Android 问题是命令并不总是有效;没有错误消息,但 SMS 未传送到模拟器。 例如,我执行
在下面的代码中,我尝试将 count 中的值转换为二进制,然后显示它。该代码似乎不起作用,并且在应该显示时仅显示 1,例如 1000 表示 8,但它为每个值显示一个。关于我应该改变或改进我的代码有什么
我最近下载了 Emu OS(一个 Linux 发行版)并将其安装在 virtual box 中。一切正常,但我无法在模拟器中实际运行 rom。我尝试了一个 .zip 格式的 GBC rom,并将其复制
我正在编写代码以在汇编中将十六进制 (A-F) 转换为十进制。我设法在 8086 emu 上写了它,但我需要它用于 linux。我需要帮助。 该代码在 8086 模拟器 n windows 上工作绝对
我的应用程序适用于 Google Apis 17。我想在启动模拟器后设置 gps 位置。 我试着按照 how-to-emulate-gps-location-in-the-android-emulat
我刚刚下载了最新的 Android 版 Mono (v4.0),我正在尝试将测试应用程序加载到 14 级 API 模拟器中。在 Visual Studio 10 和 Monodevelop 中,我在打
A recent ember-data blog update建议查看ember-model , ember-restless , 和 emu作为与传统 API 通信的 ember-data 的替代品
在 Windows Phone 8.1 512MB RAM 模拟器上,我的 WinJS 应用程序有时会出现奇怪的错误。我无法在其他模拟器实例或设备上重现它。 执行遍历 promise 链并完成以下 r
这是我在 Stack Overflow 上的第一个问题,如果我问错地方或搞砸了,请提前道歉。 我有这个项目,我正在为该项目重新利用旧的 android 平板电脑。我需要制作一个始终在平板电脑上打开的应
每当我尝试从 Android 设备管理器启动我的模拟器时出现此错误。任何解决方案? 最佳答案 更新:在此主题上进行了一些额外的试验和错误之后,我了解到对于 AMD,我需要引用下图从 Windows 功
我正在尝试使用 native native 进行学校项目,但在 cmd 中执行以下命令时:emulator -version 他向我返回了此错误: [4640]:ERROR:android/andro
在 Android Studio 上,我不断收到此警告: [12728]:WARNING:./android/base/files/IniFile.cpp:158:Failed to process
我是一名优秀的程序员,十分优秀!