我们被要求编写 16 位汇编代码并将其汇编以在 DOSBox 中运行。
我知道 16 位汇编代码与普通 x86 汇编代码的不同之处在于它使用bits 1616 位寄存器(ax、bx、cx、 ...)。
我尝试搜索如何将NASM 用于 16 位代码,但不幸的是不明白它在说什么。
我只是想知道NASM中使用什么参数来汇编16位汇编代码?(-bin或-obj?),然后如果可能的话,如何在 Linux 中调试它。如果不行,如何在DOSBox中调试?
我真的很想在这里得到一些帮助,因为我们得到的资源非常少来理解这一点,所以我真的很困惑。
我正在尝试用C++创建一个命令行应用程序,我想确保在某个命令参数之后输入是一个整数.
对于此示例,我想检查下一个参数是否是"-p"命令参数后面的整数.这是我现在代码的片段.
while (count < argc){
if (strcmp("-p", argv[count]) == 0){
has_p = true; //Boolean
pid = atoi(argv[count + 1]);
if (pid == 0 && argv[count + 1] != "0" ){
err = 1;
cout << "pid argument is not a valid input" << endl;
pid = -1;
}
count++;
}
...
}
Run Code Online (Sandbox Code Playgroud)
现在,此代码正确捕获此输入中的错误:
但是输入格式失败了
我尝试通过使用sprintf进行比较来解决这个问题.不幸的是,使用char数组指针提供sprintf只会在buffer2中输出1个字符.
while (count < argc){
if (strcmp("-p", argv[count]) == 0){
has_p = true; //Boolean …Run Code Online (Sandbox Code Playgroud)