การเรียนเรื่องการประกอบและการเขียนโปรแกรมทั้งหมดเสร็จสิ้นใน Visual Studio โดยใช้คำสั่ง _asm นี่คือเทมเพลตสำหรับงานที่ฉันกำลังทำอยู่:
void main ()
{
const unsigned char c1 (0x11);
const unsigned char c2 (0x22);
const unsigned char c3 (0x33);
const unsigned char c4 (0x44);
unsigned long i1 (0);
_asm
{
**CODE HERE**
}
cout << "result is " << hex << i1 << endl;
}
คำแนะนำ: ภายในบล็อกที่แสดงด้วยคีย์เวิร์ด _asm ให้เพิ่มโค้ดเพื่อใส่ค่า c1, c2, c3 และ c4 (แต่ละ 8 บิต) ลงในรีจิสเตอร์ eax โดยที่ c1 กำลังโหลดที่จุดสูงสุด (จุดสิ้นสุดที่สำคัญที่สุด) และ c4 ที่ ต่ำสุด ใส่ผลลัพธ์ 32 บิตลงใน i1
ฉันจะเข้าถึงตัวแปรที่ประกาศใน C++ ได้อย่างไร ฉันคิดว่าไม่มี 'ตัวแปร' ในแอสเซมบลี แล้วฉันจะเข้าถึงสิ่งเหล่านี้ได้อย่างไร
mov eax, (c1<<24) | (c2<<16) | ...
ด้วยคำสั่งเดียวที่คำนวณทันทีในเวลาคอมไพล์หรือไม่ หรือคุณต้องปล่อยให้ MSVC เก็บไว้ในหน่วยความจำแล้วmov al, c1
และ shift? (หรือวิธีอื่นอีกมากมายที่ไม่เกี่ยวข้องกับการเขียนการลงทะเบียนบางส่วน) - person Peter Cordes   schedule 24.01.2020