我想以不同于通常的白色文本颜色的颜色打印下面的数据块集,这可以通过使用另一个 DOS 中断(dx:string-address; ah,08H; int 21h)来实现。
Jan db " January$ "
string db "Sun Mon Tue Wed Thu Fri Sat$"
string1 db " 1 2 3$"
string2 db " 4 5 6 7 8 9 10$"
string3 db "11 12 13 14 15 16 17$"
string4 db "18 19 20 21 22 23 24$"
string5 db "25 26 27 28 29 30 31$"
Run Code Online (Sandbox Code Playgroud) 8086 上段的最小和最大大小是多少?而且,由于最小值,我们可以拥有的最大单独段数是多少?不需要所有的都同时处于活动状态。(重叠是可以接受的)
我必须编写一个应该在 Intel x86 处理器上运行的 x86 汇编代码。
其实要写加法或移动指令之类的,看看这些指令对处理器温度性能的影响。这意味着我的代码应该能够控制处理器产生的热量。
如果您有这样的代码或任何有编写此类代码经验的人,请分享。
可以将立即值(即任何整数)加载或复制到AVR微控制器中的通用寄存器(R0到R30)中,但为什么除GPR之外我们不能将立即值加载到SRAM中?
人们可以快速学习以下形式的命令,例如 C 语言中的命令
printf("%d", x);
Run Code Online (Sandbox Code Playgroud)
或者
printf("%lu", x);
Run Code Online (Sandbox Code Playgroud)
但是对于x的二进制表示形式,不存在%lu或%d的类似物。
我的问题首先是为什么会这样,其次是在什么时候(在哪个抽象级别)二进制表示形式会转变为十进制或十六进制?
Stack 网络上的类似点似乎只能引出特定于语言的答案或实现/库建议。然而,我的问题是关于我对数据如何抽象的整体理解,以及操作系统是否见过二进制文件,或者是否有比操作系统更低级别的东西覆盖它。
为了进一步强调我的方向,考虑一个切题的问题:以十六进制编程源文件比以十进制编程(例如在常量或变量初始化期间)对性能(速度或存储)有任何好处吗?
汇编语言中“and”指令的作用是什么?有人告诉我,它会检查操作数的位顺序,并将 1 设置为 true,将其他设置为 false,但我不知道它实际上做了什么,也不知道它对代码有什么影响。
我刚刚学习汇编语言,我很难弄清楚除法后余数存储在哪里。
我相信其余的内容存储在其中一个寄存器中,但我不知道是哪一个或如何将其打印到屏幕上。
mov eax, number1
xor edx, edx
div number2
call WriteDec
call CrLf
Run Code Online (Sandbox Code Playgroud)
上面的代码打印商但不打印余数。
当我们使用gdb或任何反汇编程序分析目标文件时,会将断点放入其中。它随时显示寄存器的当前状态。可能有许多程序在后台运行。这些程序中的每一个也将使用这些寄存器并可以更改其值。
当其他进程可能不断在改变它时,反汇编程序如何维护我们程序的寄存器值?
assembly ×8
x86 ×4
c ×3
x86-16 ×2
avr ×1
binary ×1
bitwise-and ×1
debugging ×1
dos ×1
endianness ×1
gcc ×1
gdb ×1
instructions ×1
low-level ×1
masm ×1
memory ×1
risc ×1
tasm ×1
temperature ×1