- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个类似Guitar Hero in Assembly(TASM)的游戏,我想我需要使用页面向上滚动屏幕。如何在上面的页面上打印矩形并向上滚动页面?
最佳答案
实际上,取决于视频硬件可用的内存量,不同的视频模式具有不同数量的可用“页面”。您可以看到一个几乎完整的列表here。但是,并非所有视频模式都支持多页。例如,mode 13h是VGA上的一种通用图形模式(之所以流行,是因为它允许直接操作视频内存的简化方法,从而使编程更加容易),仅支持一页,这意味着不可能以正常方式翻转页面。*您需要选择支持多页的模式。我自己不是图形模式的人,我不知道哪个受欢迎,推荐哪个。也许是0Dh,分辨率为320×200,具有16种颜色和8页?
在页面之间切换的标准方法是使用BIOS服务10h(视频功能),功能05h。这将选择 Activity 的显示页面。如在线文档here中所见,您将AH
寄存器设置为功能标识符(05h
),将AL
设置为要选择的显示页面,然后调用中断10h:
mov al, 01h ; select display page 1
mov ah, 05h ; function 05h: select active display page
int 10h
mov ax, 0501h ; AL == display page, AH == function 05h
int 10h
BH
寄存器中的 Activity 显示页:
mov ax, 0F00h ; AH == function 0Fh
int 10h
xor dx, dx ; DL == 0, DH == 0
mov cx, 1450h ; CL == 80, CH == 20
mov ax, 060Ah ; AL == 10, AH == 06h
mov bh, 0Eh ; yellow foreground, black background
int 10h
关于assembly - 如何使用汇编中的页面(TASM)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43487546/
我有旧版(DOS 时代)代码,使用过: push cs pop ds 并且与 TASM v1.01 组装得很好 尝试使用 TASM v5.4 进行汇编时,我收到 push cs 指令的“非法索引模式”
在 turbo 汇编器中我有一个宏 subs macro x,y mov ax,x sub ax,y endm 我怎样才能给 y 一个默认值,等于 1,这样我就可以写 subs bx
考虑以下宏: pixelFast MACRO ; This macro draws a pixel, assuming the coordinates are already loaded i
我目前正在为大学实现 Snake,为此我们必须使用 TASM。 我的主要游戏数据布局如下(使用 C 语法): struct GameLine { uint8_t direction_bits[
我有以下代码,它接受十六进制格式的数字并打印出其十进制格式。 这个程序在 Turbo Debugger 中运行得很好,但是当我在 DOS 中运行它时,我在数字输出后看到一些额外的符号: .model
我不知道为什么函数 47h 在缓冲区中返回 ASCIZ。如何获取当前目录的名称?请帮助我,我的代码如下。 assume cs:code, ds:data data segment numed db "
在我的program.asm中,我包含带有 tasm 指令的文件 include "file.asm" 但是我收到错误“无法找到文件 file.asm”。该文件与源代码位于同一目录中,即 D:\sou
我想创建一个类似Guitar Hero in Assembly(TASM)的游戏,我想我需要使用页面向上滚动屏幕。如何在上面的页面上打印矩形并向上滚动页面? 最佳答案 实际上,取决于视频硬件可用的内存
我试图用 tasm 编译一个名为 addTwoNumbers.asm 的文件,但收到错误“命令行:找不到文件:addTwoNumbers.asm”。在我将文件的名称更改为更短的名称(如 add.asm
我试图逐个字符地打印一个字符串,遍历它。这是我得到的: .MODEL SMALL .STACK 64 .DATA string DB 'Something',0 len equ $-s
我的汇编源代码: ideal model tiny segment _data byte ; TASM doesn't accept it. ends _data dataseg align 1
我想在 TASM 程序中使用两个数据段。我知道,这很糟糕,但我必须有两个相当大的数组,每个数组的大小为 FFFFh(我希望我能让它们更大)。 我假设这些段如下:假设 cs:code、ds:data、d
有没有办法用 Borland 的 TASM 扩展宏?我想转换一个 TASM 兼容的 .ASM 文件以查看他所有的宏扩展。找不到执行此操作的任何选项。 最佳答案 使用 TASM 的命令行选项/la 生成
我这里有这段代码,但我不熟悉语法。 STACK16_SIZE = 100h stack16 db STACK16_SIZE dup (?) 我认为 dup意
我正在使用 TASM 1.4,我正在尝试制作一个输出,该输出将在同一屏幕中显示不同颜色的句子。我可以制作一些显示彩色文本的东西,但所有单词都具有相同的颜色。如何制作显示不同颜色的字符串/句子的东西?例
我一直在编写一个程序,需要将寄存器的值与某个数字进行比较。在 emu8086 上进行模拟时,我没有遇到任何问题,但是 TASM 编译器在所有行上都给出了错误,如下所示: cmp bx, 0xF7F0h
您好,我正在为学校项目编写游戏,但播放音频文件时遇到问题。 我能够播放该文件,但问题是程序卡住并停止响应用户 音乐文件代码 proc read Near ; Read next sample
我试图简单地按顺序打印数字,即 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 使用循环,首先,我将每个数字转换为十六进制打印,将其重置为十进制增
我正在尝试从 TASM 程序集中的用户读取一个字符串,我知道我需要一个缓冲区来保存输入,最大值。 length 和 actual length ,但我好像忘了我们到底是怎么声明一个缓冲区的 我的尝试是
我是组装和图形的初学者,任何帮助将不胜感激。我得到了 svga 信息,但是当我打印它时,它不会打印任何内容。如果有人能解释为什么那就太好了。这是代码。如果我所做的事情需要更多解释,请告诉我 .MODE
我是一名优秀的程序员,十分优秀!