作为我们任务的一部分,我们应该用矩阵做各种函数.对于菜单,我们被分配使用"案例表"(它实现为2-D数组,每行只包含一个字母常量及其相应的函数)
我真的无法理解笔记,这本书是零帮助(它根本没有提到它们)
.data
CaseTable BYTE 'A' ; lookup value
DWORD Process_A ; address of procedure
EntrySize = ($ - CaseTable)
BYTE 'B'
DWORD Process_B
BYTE 'C'
DWORD Process_C
BYTE 'D'
DWORD Process_D
NumberOfEntries = ($ - CaseTable) / EntrySize
….
segment .text
...
mov ebx, CaseTable ; point EBX to the table
mov ecx,NumberOfEntries ; loop counter
L1: cmp al,[ebx] ; match found?
jne L2 ; no: continue
call PTR [ebx + 1] ; yes: call the procedure
jmp L3 …Run Code Online (Sandbox Code Playgroud) 我有一个家庭作业,用汇编语言为8086系列处理器制作一个简单的程序,读取并打印软盘上占用的总空间.
现在我有几个问题.我知道我必须使用中断,但我不知道哪一个以及它是如何工作的,我尝试了诺顿指南,但我找不到我想要的东西.另一个问题是我没有软盘或者有一台软盘的机器......我完全没办法测试这个程序.
换句话说,我被卡住了
编辑:
另外我如何乘以3个单词?Ax*Cx*Dx?因为Word*Word =双字......我不知道如何将双字与Word相乘.
这是示例代码...但我得到了serializationException.
xlbook是对象,我想将此对象保存到memorystream.
unsafe public void Save(IStream stream, bool clearDirty, Excel.Workbook xlbook)
{
try
{
//if (stream == null)
//{
// return;
//}
//object data = xlbook;
if (xlbook == null)
{
return;
}
// convert data to byteArray
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter binaryFormatter = new BinaryFormatter();
//AppDomain currentDomain = AppDomain.CurrentDomain;
//currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve);
//here im getting exception.
binaryFormatter.Serialize(memoryStream, xlbook);
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
//get memory pointer
int cb;
int* pcb = &cb;
//save data
byte[] arrayLen …Run Code Online (Sandbox Code Playgroud) 我正在用汇编语言做一些练习,我发现了一个关于优化的问题,我无法弄清楚.任何人都可以帮助我
所以问题是优化以下汇编代码:
----------------------------例1 --------------------- ----
mov dx, 0 ---> this one I know-> xor dx,dx
Run Code Online (Sandbox Code Playgroud)
----------------------------例题--------------------- ---
cmp ax, 0
je label
Run Code Online (Sandbox Code Playgroud)
----------------------------示例3 --------------------- ----
mov ax, x
cwd
mov si, 16
idiv si
Run Code Online (Sandbox Code Playgroud)
---->在这个例子中我能想到的最多的是idiv 16的最后两行,但我不确定
----------------------------范例4 --------------------- ----
mov ax, x
mov bx, 7
mul bx
mov t, ax
Run Code Online (Sandbox Code Playgroud)
----------------------------例5 --------------------- ------
mov si, offset array1
mov di, offset array2
; for i = 0; i < n; ++i
do:
mov bx, [si]
mov [di], bx
add si, 2 …Run Code Online (Sandbox Code Playgroud) 我得到了集合{1,2,...,n}的排列.我必须通过以最小的总成本交换位于成功位置的数字来排序这种排列.交换位于连续位置的元素x,y的成本是min(x,y).
例如,如果我有排列3,1,2,4总的最小成本是3.因为我执行这些步骤((x,y)意味着用y交换x):
总费用为3.
我通过交换最小成本未排序对来尝试蛮力,直到没有未排序的对,但这种方法显然不够快.
我的问题是,如何根据我的条件找到最低的分拣成本?
我想在VB.NET中调用一些ASM函数.我该怎么做?这是出于性能目的.
我没有在网上找到任何东西.
谢谢
说我有一个这样的课:
public class Example{
private String secret = "Secret String";
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能添加一个getter来返回这个字符串(没有使用反射),所以我想以某种方式添加它
public String getSecret(){
return secret;
}
Run Code Online (Sandbox Code Playgroud) 我想用箭头键在汇编语言中引导一个形状,我的代码是这样的:
call getkey
cmp al, ...
je direct
Run Code Online (Sandbox Code Playgroud)
什么后我应该把它用于诊断用箭头键用户按下???
我想知道字符串和内存如何一起工作。
据我所知,我知道当创建一个字符串时,它会将一些字符数组 + '\0' 放入内存中。我也知道它们是一成不变的。那么,对于连接之类的事情,内存中会发生什么,允许您访问相同的字符串?
我不认为您连接的字符串或字符直接放在原始字符串的地址之后,因为这可能会重叠一些所需的内存。
在 C# 和其他语言中,您可以说:
string s = "Hello" ... s = s + '!'
这会创建一个新字符串吗?一个指向一个新位置并显示“Hello!”,而使原始位置永远不会被引用的位置?
或者字符串使用的默认字符缓冲区是否允许连接中存在一些空间?
我正在6502组装中打印到屏幕上
在我写的监视器中
STA $01, y to store the value at the pointer
Run Code Online (Sandbox Code Playgroud)
当我在此行按Enter键时,它说指令无效?
有任何想法吗...?