- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习微处理器类(class),但我的代码有问题。
我需要编写一个程序代码,让一个词四处移动。
代码在 (80*25) 屏幕上正常工作(因为我的计算依赖于它)
但问题是:当我最大化显示屏幕时,一切都出错了!,因为尺寸改变了
是否有任何指令代码,如果我们在代码中写入强制显示包含相同的尺寸,即使我们最大化它?
when the display screen (80*25)
mov ax, 0b800h
mov ds, ax
mov bx, 0
Main:
call dltru
dltru: ; diagonal left to right upper
mov bx,0
mov si,0
mov cx,21
lower2:
call box
mov [bx+160+2+si],' '
mov [bx+160+4+si],'M'
mov [bx+160+6+si],'O'
mov [bx+160+8+si],'E'
mov [bx+160+10+si],' '
mov [bx+160+12+si],'S'
mov [bx+160+14+si],'A'
mov [bx+160+16+si],'Y'
mov [bx+160+18+si],'E'
mov [bx+160+20+si],'L'
mov [bx+160+22+si],' '
mov [bx+160+24+si],'F'
mov [bx+160+26+si],'A'
mov [bx+160+28+si],'L'
mov [bx+160+30+si],'A'
mov [bx+160+32+si],'H'
mov [bx+160+34+si],' '
call delete
add si,160
add bx,6
loop lower2
ret
Box: ;this will draw the box around the announcement!
;left
mov [0+bx+si],0B2h
mov [160+bx+si],0B2h
mov [320+bx+si],0B2h
;right
mov [36+bx+si],0B2h
mov [196+bx+si],0B2h
mov [356+bx+si],0B2h
;upper
mov [2+bx+si],0B2h
mov [4+bx+si],0B2h
mov [6+bx+si],0B2h
mov [8+bx+si],0B2h
mov [10+bx+si],0B2h
mov [12+bx+si],0B2h
mov [14+bx+si],0B2h
mov [16+bx+si],0B2h
mov [18+bx+si],0B2h
mov [20+bx+si],0B2h
mov [22+bx+si],0B2h
mov [24+bx+si],0B2h
mov [26+bx+si],0B2h
mov [28+bx+si],0B2h
mov [30+bx+si],0B2h
mov [32+bx+si],0B2h
mov [34+bx+si],0B2h
;lower
mov [322+bx+si],0B2h
mov [324+bx+si],0B2h
mov [326+bx+si],0B2h
mov [328+bx+si],0B2h
mov [330+bx+si],0B2h
mov [332+bx+si],0B2h
mov [334+bx+si],0B2h
mov [336+bx+si],0B2h
mov [338+bx+si],0B2h
mov [340+bx+si],0B2h
mov [342+bx+si],0B2h
mov [344+bx+si],0B2h
mov [346+bx+si],0B2h
mov [348+bx+si],0B2h
mov [350+bx+si],0B2h
mov [352+bx+si],0B2h
mov [354+bx+si],0B2h
ret
delete:
mov [bx+162+si],' '
mov [bx+164+si],' '
mov [bx+166+si],' '
mov [bx+168+si],' '
mov [bx+170+si],' '
mov [bx+172+si],' '
mov [bx+174+si],' '
mov [bx+176+si],' '
mov [bx+178+si],' '
mov [bx+180+si],' '
mov [bx+182+si],' '
mov [bx+184+si],' '
mov [bx+186+si],' '
mov [bx+188+si],' '
mov [bx+190+si],' '
mov [bx+192+si],' '
mov [bx+194+si],' '
;left
mov [0+bx+si],' '
mov [160+bx+si],' '
mov [320+bx+si],' '
;right
mov [36+bx+si],' '
mov [196+bx+si],' '
mov [356+bx+si],' '
;upper
mov [2+bx+si],' '
mov [4+bx+si],' '
mov [6+bx+si],' '
mov [8+bx+si],' '
mov [10+bx+si],' '
mov [12+bx+si],' '
mov [14+bx+si],' '
mov [16+bx+si],' '
mov [18+bx+si],' '
mov [20+bx+si],' '
mov [22+bx+si],' '
mov [24+bx+si],' '
mov [26+bx+si],' '
mov [28+bx+si],' '
mov [30+bx+si],' '
mov [32+bx+si],' '
mov [34+bx+si],' '
;lower
mov [322+bx+si],' '
mov [324+bx+si],' '
mov [326+bx+si],' '
mov [328+bx+si],' '
mov [330+bx+si],' '
mov [332+bx+si],' '
mov [334+bx+si],' '
mov [336+bx+si],' '
mov [338+bx+si],' '
mov [340+bx+si],' '
mov [342+bx+si],' '
mov [344+bx+si],' '
mov [346+bx+si],' '
mov [348+bx+si],' '
mov [350+bx+si],' '
mov [352+bx+si],' '
mov [354+bx+si],' '
ret
最佳答案
mov [bx+160+2+si],' '
由于 160 的固定值仅对 80 列屏幕有效,因此您的代码在替代分辨率上失败。
您需要计算文本视频内存中 1 条扫描线的大小:
.首先查看当前屏幕上的实际列数。 BIOS 在 0040h:004Ah 的内存变量中有这个计数。
.然后将此值加倍,因为在显存中每个字符/属性占用 2 个字节。
.最后用这个值代替固定值160。
push ds
mov bx, 0040h
mov ds, bx
mov bx, [004Ah]
shl bx, 1 ; This gives: BX=160 if 80x25, BX=382 if 191x63
pop ds
在屏幕的第二行写成:
mov [bx+2+si],' '
mov [bx+4+si],'M'
mov [bx+6+si],'O'
mov [bx+8+si],'E'
在屏幕第3行写成:
add bx, bx
mov [bx+2+si],0B2h
mov [bx+4+si],0B2h
mov [bx+6+si],0B2h
mov [bx+8+si],0B2h
关于assembly - EMU8086显示屏(黑屏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50298504/
我正在开发一个简单的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
我是一名优秀的程序员,十分优秀!