Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
我试图在 AAM 指令之后使用 AX 中存储的值将其除以 2,为什么它不适用于 2 位数字输出?
英语不是我的母语 请原谅输入错误 我将在此处显示的代码是一项作业 我真的需要了解发生了什么事 我在 DosBox 0 74 和 TASM 汇编器中使用 Intel 8086 语法 当我必须除以 2 时 代码的问题在于三角形的面积 注意 程序
Assembly
x8616
tasm
DOSBOx
x86 Assembly:很难找到无限循环挑战的想法
我打算和我的朋友们进行一场类似于 corewars 的比赛 我们使用与原始游戏相同的内存网格 在游戏中 我们每个人都应该写一个 保险箱 它是一个不超过 25 行的无限循环 每个 安全 都有一个技巧或代码可以停止循环 从而破坏 安全 例如 S
Assembly
x8616
corewars
自定义键盘中断处理程序
我正在尝试编写一个简单的程序 将标准键盘中断替换为自定义的键盘中断 以减少变量 但是 如果不调用旧处理程序 它就无法工作 这是我的中断处理程序 handler proc push ax push di dec EF pushf when t
Assembly
DOS
MASM
x8616
interrupthandling
在汇编程序中将十进制转换为二进制
我的第一个汇编程序需要帮助 我必须将用户输入的值从十进制转换为二进制 我不知道如何将值显示为小数 以及下一步应该做什么 谁能一步一步指导我下一步做什么 model small stack 100h data txt1 db Enter bi
Assembly
Binary
Decimal
DOS
x8616
查找输入字符串中的子字符串
我有这个汇编程序 我需要在我输入的主字符串中找到子字符串 我的问题是 即使我输入了两个完全不同的单词 它总是输出 找到的单词 我不知道我的循环或条件的哪一部分是错误的 请帮我弄清楚 另外 请建议一些可用于检查子字符串的字符串指令 以便我可以
string
Assembly
x8616
strStr
为什么使用 mov/cmp 而不是带有两个内存操作数的 cmp? [复制]
这个问题在这里已经有答案了 我在执行二分搜索程序代码时发现了以下语句 l1 mov si low cmp si high 为什么我们需要将 low 存储在 si 中然后与 high 进行比较 不可以直接写cmp low high 你不能写c
Assembly
x8616
instructions
MOV
计算段:距绝对地址的偏移量
我可以计算一个地址Segment Offset as Segment 0x10 Offset 但如何计算相反的情况呢 例如 我怎样才能从0xF4170 to F400 0170和来自0xACF04 to ABCD 1234 您需要具有起始基
Assembly
x8616
memorysegmentation
8086 asm中的struct类型数据无法打印
outputstring macro x push ax push dx mov ah 9 mov dx offset x int 21h pop dx pop ax endm inputstring macro x push ax pus
Assembly
x8616
MASM
emu8086
无法将 8 位地址移至 16 位寄存器
我正在尝试分配变量来注册 代码如下 ORG 100h var1 DB 10 var2 DB 20 MOV BX var1 error operands do not match 16 bit register and 8 bit addre
Assembly
x86
x8616
emu8086
使用BIOS int 13h访问不同磁头的扇区
我的磁盘每磁道有 63 个扇区 根据我的观察 我假设 我想使用 int 13h 读取 16 位引导加载程序上的扇区 例如 如果我想读取扇区号 63 我将执行以下操作 mov dl 0x80 Drive number mov dh 0 Thi
Assembly
x86
x8616
BootLoader
osdev
将 DB 变量中的字节值加载到 16 位寄存器中(符号或零扩展字节)
我正在使用 MASM 编译器和 DOSBOX 我想将变量的值保存到寄存器中 我想保存num1值转化为cx登记 我怎样才能做到这一点 MODEL SMALL STACK 50H DATA num1 db 5 NL DB 0DH 0AH msg
Assembly
MASM
x8616
DOS
DOSBOx
扩展内联汇编中的约束“Rah”和“Ral”意味着什么?
这个问题的灵感来自于另一个论坛上有人提出的问题 在下面的代码中 扩展内联汇编约束是什么Rah and Ral意思是 我以前没见过这些 include
gcc
x86
x8616
inlineassembly
ia16gcc
如何在 .COM 可执行文件中以相反顺序打印字符串?
我刚刚开始学习汇编语言 我正在尝试以相反的顺序打印 hello world 这意味着 dlrow olleh 问题是我只得到第一个字母作为输出 并且顺序仍然相同 没有任何变化 作为一个新手 很多事情对我来说都是未知的 我犯了很多错误 由于缺
string
Assembly
DOS
Reverse
x8616
装配 x86-16 中的模式 X,为什么平面 1 未打印,而所有其他平面的顺序不正确?
我正在 DosBox 0 74 上的 TASM 3 0 中写入 并且我正在尝试写入Mode x https en wikipedia org wiki Mode X 调整了13小时 无束缚模式 13 http www brackeen co
Assembly
graphics
DOS
x8616
VGA
实模式内存寻址中的段和偏移量是什么?
我正在阅读有关内存寻址的内容 我阅读了有关段偏移的内容 然后阅读了有关描述符偏移的内容 我知道如何在实模式下计算确切的地址 这一切都可以 但我无法理解偏移量到底是什么 我到处读到 在实模式下 寄存器只有16位 因此只能寻址 高达 64k 为
Assembly
x86
x8616
realmode
memorysegmentation
使用通过参数传递的偏移量计算过程内部数组的长度,汇编语言 x8086
所以我试图通过使用参数中的偏移量来获取数组的长度 但它只返回 lenhof 偏移量 我有什么办法可以做到这一点吗 INCLUDE Irvine32 inc multiply proto arr ptr dword data array dw
Assembly
offset
x8616
PROCEDURE
MASM
汇编中的 MUL 函数
我正在尝试在汇编中执行简单的乘法 但是 当MUL函数被调用 mov bx 5 mov cx 10 mul cx 这些被称为指示 并且他们指定运营由处理器执行 mov是一个助记符move 同时mul是一个助记符mul尖利的 其他常见指令包括a
Assembly
x86
x8616
multiplication
INT 21h 不打印
我想知道为什么这个程序不打印 print push ax push bx push dx mov ah 02h ciclo mov al si int 21h inc si loop ciclo pop dx pop bx pop ax r
Assembly
x86
x8616
IDIV 汇编语言的问题
CX 等于 14 AX 等于 16 IDIV CX 但 ALL 中的某个地方有 37 个 该行之前没有任何错误或错误 我哪里做错了 谢谢你 附注在Emu8086上写 IDIV CX除 32 位值DX AX by CX 并将商存储在AX和剩余
Assembly
emulation
x8616
提高 8086 二进制 -> 格雷码的效率
我是汇编初学者 这是我设计的代码 用于从二进制转换为灰度 并以十六进制打印生成的位模式 mov al a mov bl al shr bl 1 xor al bl 虽然程序可以运行 但我想了解其他更简单的方法来提高效率 我尝试了很多其他方法
Assembly
Hex
x8616
microoptimization
graycode
1
2
3
4
5
6
»