汇编实验·系统调用

embedded/2025/1/24 5:08:18/

一、实验目的:

1.掌握基于特定操作系统中调用API或者SYSTEMCALL的基本方法。

2.进一步理解高级语言中函数调用的相关规定和约定(stdcall,cdec,fastcall等)

3.IA-32架构下API参数在汇编中的实现方式和约定。

二、实验内容

1.在课程设定的VS2022社区版的汇编开发环境下,完成以下C语言代码的汇编语言改写

#include "stdafx.h"
#include <windows.h>
HANDLE hStdout, hStdin;
int main(void)
{LPSTR lpszPrompt1 = "Type a line and press Enter, or q to quit: ";CHAR chBuffer[256];DWORD cRead, cWritten;// Get handles to STDIN and STDOUT.hStdin = GetStdHandle(STD_INPUT_HANDLE);hStdout = GetStdHandle(STD_OUTPUT_HANDLE);if (hStdin == INVALID_HANDLE_VALUE ||hStdout == INVALID_HANDLE_VALUE){return 1;}// Write to STDOUT and read from STDIN by using the default// modes. Input is echoed automatically, and ReadFile// does not return until a carriage return is typed.//// The default input modes are line, processed, and echo.// The default output modes are processed and wrap at EOL.while (1){if (!WriteFile(hStdout,               // output handlelpszPrompt1,           // prompt stringlstrlenA(lpszPrompt1), // string length&cWritten,             // bytes writtenN

http://www.ppmy.cn/embedded/156475.html

相关文章

web3py+flask+ganache的智能合约教育平台

最近在学习web3的接口文档&#xff0c;使用web3pyflaskganache写了一个简易的智能合约教育平台&#xff0c;语言用的是python&#xff0c;ganche直接使用的本地区块链网络&#xff0c;用web3py进行交互。 代码逻辑不难&#xff0c;可以私信或者到我的闲鱼号夏沫mds获取我的代码…

两台局域网电脑通过飞秋传输大文件失败的解决方案

问题描述&#xff1a; 局域网两台电脑之间传输大文件&#xff08;超过20G&#xff09;&#xff0c;不想太复杂&#xff0c;就各装个飞秋。但是通过直接发送文件发现总是失败&#xff0c;一会就中断了。 解决方法&#xff1a; 主界面上有一个文件共享的按钮&#xff0c;通过文…

npm install安装缓慢或卡住不动

起因 今天执行npm install eslint-plugin-cypresslatest --save-dev命令时进度条一直卡着不动&#xff0c;于是想着安装yarn来操作。 方案1 全局安装yarn&#xff08;Mac在npm前加sudo&#xff09;&#xff1a; npm install -g yarn yarn安装好之后安装依赖用&#xff1a; y…

WPF-系统资源

引用资源方法 单个资源 <Window.Resources><ResourceDictionarySource"Res.xaml"></ResourceDictionary> </Window.Resources> <Grid Width"{StaticResource value}" />多个资源 <Window.Resources><ResourceDi…

Net Core微服务入门全纪录(三)——Consul-服务注册与发现(下)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

在 VS Code 中使用 TypeScript 进行开发和打包的几种方法

在 Visual Studio Code (VSCode) 中高效使用 TypeScript 进行开发和打包&#xff0c;需要结合合理的配置、工具链和开发流程。以下是详细步骤和最佳实践&#xff1a; 1. 环境准备 1.1 安装必要工具 Node.js 和 npm: TypeScript 需要 Node.js 环境。建议安装 LTS 版本。 # 验证…

cuda + cudnn安装

1.安装CUDA Toolkit 在设备管理器&#xff08;此电脑–右键–属性&#xff09;的显示适配器中可以查看自己的显卡型号&#xff0c;去下载对应的CUDA Toolkit 。或者输入以下命令查看Driver Version &#xff0c;cuda Version&#xff1a;12.2代表12.2版本以下兼容可以进行安装 …

Django 的 `Meta` 类和外键的使用

Django 的 Meta 类和外键的使用 1. Meta 类的常用选项2. 外键&#xff08;ForeignKey&#xff09;字段的使用2.1 基本用法2.2 ForeignKey 参数2.3 外键删除选项&#xff08;on_delete&#xff09; 3. 外键和查询3.1 获取作者的所有书籍3.2 通过书籍查找作者3.3 使用 select_rel…