汇编地址计数器$与指令指针有什么区别? 程序计数器(pc)与指令指针寄存器(ip)区别

\u6c47\u7f16\u5730\u5740\u8ba1\u6570\u5668$\u4e0e\u6307\u4ee4\u6307\u9488\u6709\u4ec0\u4e48\u533a\u522b\uff1f

\u8fd9\u5b8c\u5168\u662f\u4e24\u7801\u4e8b\u3002PC\u5185\u5f53\u524d\u6307\u4ee4\u7684\u4e0b\u4e00\u6761\u6307\u4ee4\u7684\u5730\u5740\u88ab\u5b58\u653e\u5728\u5bc4\u5b58\u5668IP\u4e2d\uff0cIP\u662f\u4ee3\u7801\u6bb5\u7684\u5730\u5740\u6307\u9488\u3002\u800c$\u53ea\u4e0d\u8fc7\u662f\u4e00\u4e2a\u4f2a\u64cd\u4f5c\u7b26\uff0c\u662f\u4e00\u4e2a\u53d6\u5f53\u524d\u5730\u5740\u7684\u4f2a\u64cd\u4f5c\u7b26\uff0c\u4e5f\u5373\u5730\u5740\u8fd0\u7b97\u7b26\uff0c\u5b83\u53ea\u5728\u6e90\u7a0b\u5e8f\u5728\u7f16\u8bd1\u8fc7\u7a0b\u4e2d\u4e3a\u4e86\u53d6\u5f97\u5f53\u524d\u5730\u5740\u65f6\u7528\uff0c\u5f53\u7f16\u8bd1\u5b8c\u6210\u540e\uff0c\u4ee3\u7801\u4e2d$\u88ab\u4e00\u4e2a\u5b9e\u9645\u7684\u5730\u5740\u503c\u53d6\u4ee3\u4e86\u3002

\u4f8b\uff1a
\u5f53\u6211\u4eec\u9700\u8981\u6c47\u7f16\u7f16\u8bd1\u5668\u81ea\u52a8\u8ba1\u7b97\u51fa\u6570\u7ec4\u5927\u5c0f\u7684\u65f6\u5019\uff0c\u53ef\u80fd\u5c31\u4f1a\u7528\u5230\u5f53\u524d\u5730\u5740\u8ba1\u6570\u5668$\u8fd0\u7b97\u7b26\u4e86\uff0cMASM\u7528$\u8fd0\u7b97\u7b26\u8fd4\u56de\u5f53\u524d\u7a0b\u5e8f\u8bed\u53e5\u7684\u5730\u5740\u504f\u79fb\u503c\uff0c\u5229\u7528\u8be5\u6570\u503c\uff0c\u6211\u4eec\u53ef\u4ee5\u8ba1\u7b97\u51fa\u6570\u7ec4\u7684\u957f\u5ea6\u3002
\u4f8b\u5982\uff1a
list BYTE 10,20,30,40,50
Listlen = $ - list
\u5219\u5e38\u91cfListlen\u5c31\u662f\u6570\u7ec4list\u7684\u957f\u5ea6\u503c\u4e86\u3002
\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\u4e00\u5b9a\u8981\u6ce8\u610f\u5b57\u8282\u6570\u7ec4\u3001\u5b57\u6570\u7ec4\u548c\u53cc\u5b57\u6570\u7ec4\u7684\u957f\u5ea6\u8ba1\u7b97\u533a\u522b\u3002

PC\u662f\u7a0b\u5e8f\u8ba1\u6570\u5668\uff0cPC\u5bc4\u5b58\u5668\u4e2d\u7684\u5185\u5bb9\u662f\u4e0b\u4e00\u6761\u8981\u53d6\u7684\u6307\u4ee4\u768416\u4f4d\u5b58\u50a8\u5355\u5143\u5730\u5740\uff0c\u5728\u7a0b\u5e8f\u6267\u884c\u7684\u8fc7\u7a0b\u4e2d\uff0cPC\u4e2d\u7684\u503c\u4f1a\u81ea\u52a8\u52a01\u3002IP\u5bc4\u5b58\u5668\u662fCPU\u5728\u5730\u5740\u603b\u7ebf\u4e0a\u8f93\u51fa\u8fd9\u4e2a\u5730\u5740\u4fe1\u53f7\uff0c\u8fd9\u4e2a\u5730\u5740\u4fe1\u53f7\u5bf9\u4e8e\u5bc4\u5b58\u5668\u6765\u8bf4\u662f\u8f93\u5165\uff0c\u8fd9\u5c31\u9009\u4e2d\u4e86\u5b58\u50a8\u5668\u4e2d\u76f8\u5e94\u7684\u5355\u5143\uff0c\u7136\u540e\u5728R/W\u4e0a\u53d1\u51fa\u8bfb\u4fe1\u53f7\uff0c\u4ece\u5b58\u50a8\u5668\u4e2d\u7684\u90a3\u4e2a\u5355\u5143\u8bfb\u51fa\u6307\u4ee4\uff0c\u4ece\u6570\u636e\u603b\u7ebf\u4e0a\u4f20\u5230CPU\u3002IP\u5c31\u662f\u5355\u7247\u673a\u4e2d\u65ad\u4f18\u5148\u7ea7\u63a7\u5236\uff0cCPU\u4ece\u6307\u4ee4\u6307\u9488\u5bc4\u5b58\u5668IP\u4e2d\u83b7\u5f97\u6307\u4ee4\u7684\u5185\u5b58\u5730\u5740\uff0c\u7136\u540e\u53d6\u51fa\u6307\u4ee4\uff0c\u653e\u5230\u6307\u4ee4\u5bc4\u5b58\u5668IR\u3002\u63a5\u4e0b\u6765\uff0cIP\u81ea\u5df1\u52a01\uff0c\u4e5f\u5c31\u662f\u6307\u5411\u4e0b\u4e00\u6761\u6307\u4ee4\u3002

上面
圆球球UOB
的回答有问题哈。
这是两个不同阶段里存在的概念。编写的一个汇编程序从编写好到最后得到运行结果,至少需要以下几个阶段:编写、录入、汇编链接、运行。
其中
汇编链接
就是我们用masm汇编、link链接等软件处理的过程。
在masm汇编时才会有$,它叫地址计数器,masm用它来确定每一个变量的地址、每一条语句的地址、每一个标号的地址、每一个子程序的入口地址。
比如我们有一条指令
mov
ax,a
,这里的a就会被a的地址所替代,指令会采用直接寻址方式。
而PC是在程序被执行时才有的,被称为程序计数器,CPU由他来记住当前要执行的指令的地址,当当前的指令执行时PC会指向下一条要执行的指令,这样来保证程序连续不断的执行下去,直到结束。

  • 姹囩紪璇█涓殑$鎸囩殑鏄粈涔
    绛旓細灏辨槸鏈鎸囦护鐨勫綋鍓鍦板潃 DJNZ R4,$锛岃繖鍙ョ殑鎰忔濆氨鏄紝濡傛灉R4涓嶇瓑浜0锛岄偅涔堝氨璺宠浆鍒$锛屽氨鏄烦杞埌鏈寚浠ょ殑鍦板潃锛屽氨杩樻槸鎵ц杩欏彞锛岀洿鍒癛4绛変簬0锛屾墠鎵ц涓嬩竴鍙ャ
  • 姹囩紪璇█涓$鐨勬剰鎬?
    绛旓細鍦板潃璁℃暟鍣$鐢ㄦ潵淇濆瓨褰撳墠姝e湪姹囩紪鐨鎸囦护鐨勫亸绉诲湴鍧銆
  • 姹囩紪鍒濆鑰呮彁闂,鏈夊嚑涓皬闂鍟
    绛旓細ENDS CODE SEGMENT ASSUME DS:DATA, SS:STACK1, CS:CODE START:;;;MOV AX, DATA MOV DS, AX ;杩欎袱琛岀‘瀹氭暟鎹鐨鍦板潃锛屻備唬鐮佹鐨勫湴鍧鐢辩紪璇鍣ㄥ拰鎿嶄綔绯荤粺鍏卞悓纭畾锛岀敱END START鎸囧畾瀹冪殑鐩稿浣嶇疆锛涘叾瀹冨悇娈碉紝鍑$▼搴忎腑瀹氫箟浜嗙殑锛岄兘瑕佺敤杩欐牱鐨勬柟寮忔槑纭寚瀹氬叾娈靛湴鍧銆
  • 绋嬪簭璁℃暟鍣PC鍜屾寚浠ゆ寚閽瀵勫瓨鍣ㄦ槸浠涔堝叧绯
    绛旓細绋嬪簭璁℃暟鍣PC鍜屾寚浠ゆ寚閽瀵勫瓨鍣ㄤ簩鑰呬箣闂寸殑鍏崇郴鍙互鍙傝冧笅闈㈢殑鐞嗚В锛氱▼搴忚鏁板櫒PC鍜屾寚浠ゆ寚閽堝瘎瀛樺櫒IP鏄竴涓笢瑗匡紝瀹冧滑閮芥槸瀛樺偍涓嬩竴鏉℃墽琛屾寚浠ょ殑鍦板潃銆傚湪X86涓婁竴鑸彨IP锛屽湪ARM涓婂彨PC锛堜篃鏄疪15锛夈傚湪X86涓婁笉鑳界洿鎺ョ粰IP璧嬪硷紝鍙互閫氳繃jmp鏉ユ敼鍙樺畠鐨勫笺傝孉RM涓婂彲浠ラ氳繃LDR鐩存帴瀵筆C璧嬪笺
  • 姹囩紪璇█涓,$绗﹀彿鍦ㄥ瓧绗︿覆閲岀殑浣滅敤鏄粈涔?
    绛旓細鍦ㄥ瓧绗︿覆閲屼竴鑸綔瀛楃涓茬殑缁撴潫绗︺傚涓柇璋冪敤AH=09H锛孖NT 21H瀹炵幇瀛楃涓叉樉绀轰腑銆
  • 绋嬪簭璁℃暟鍣(pc)涓庢寚浠ゆ寚閽瀵勫瓨鍣(ip)鍖哄埆
    绛旓細IP瀵勫瓨鍣ㄦ槸CPU鍦鍦板潃鎬荤嚎涓婅緭鍑鸿繖涓湴鍧淇″彿锛岃繖涓湴鍧淇″彿瀵逛簬瀵勫瓨鍣ㄦ潵璇存槸杈撳叆锛岃繖灏遍変腑浜嗗瓨鍌ㄥ櫒涓浉搴旂殑鍗曞厓锛岀劧鍚庡湪R/W涓婂彂鍑鸿淇″彿锛屼粠瀛樺偍鍣ㄤ腑鐨勯偅涓崟鍏冭鍑烘寚浠わ紝浠庢暟鎹荤嚎涓婁紶鍒癈PU銆侷P灏辨槸鍗曠墖鏈轰腑鏂紭鍏堢骇鎺у埗锛孋PU浠鎸囦护鎸囬拡瀵勫瓨鍣↖P涓幏寰楁寚浠ょ殑鍐呭瓨鍦板潃锛岀劧鍚庡彇鍑烘寚浠わ紝鏀惧埌鎸囦护瀵勫瓨鍣↖R銆傛帴...
  • call $+5浠涔堟剰鎬?
    绛旓細CALL鏄皟鐢ㄧ殑鎰忔 +5鏄竴娈电▼搴忕殑鍚嶅瓧锛岃鍚嶅瓧鍦ㄥ唴瀛樹腑涓嶇珯鍐呭瓨锛屾槸涓虹紪璇戝櫒璇嗗埆鐨勩
  • 姹囩紪:length equ $ -arry 鏄粈涔堟剰鎬?
    绛旓細LENGTH鍦ㄤ綘杩欐槸鐢ㄦ潵琛ㄧず涓婇潰瀹氫箟鐨勬暟缁勯暱搴︾殑鏁 EQU鏄吉鎿嶄綔绗,鐢ㄦ潵涓哄父閲忓畾涔変竴涓瓑浠风殑绗﹀彿鍚,鐩稿綋浜嶤涓殑#define $涔熸槸浼搷浣滅,琛ㄧず褰撳墠鍦板潃璁℃暟鍣鐨勫,鍦ㄤ綘涓婇潰鐨勭▼搴忎腑,$-ARRY 灏辩瓑浜庢墍瀹氫箟鐨勬暟缁勭殑闀垮害.
  • 姹囩紪璇█ 姹囩紪鍦板潃璁℃暟鍣 鐩稿叧闂
    绛旓細浠g爜娈电殑鍋忕Щ鍦板潃涓鑸槸浠0000寮濮嬬殑锛屼綘杩欓噷鍐欎簡16涓暟锛岀敤ascii鐮佽褰曞湪鍐呭瓨閲岋紝涓鍏辩敤浜16涓瓧鑺傦紝姝ゆ椂鏁版嵁鎸囬拡鎸囧悜0010涔熷氨鏄17涓崟鍏冿紝鍓嶉潰鏈16涓暟
  • SJMP $鐨勪綔鐢ㄦ槸浠涔?
    绛旓細$杩欓噷缇庡厓绗﹀彿鎸囩殑鏄綋鍓嶇殑鍦板潃锛屽氨鏄瑕佽烦杞埌褰撳墠鍦板潃锛屽亣璁句綘SJMP鐨勫叾瀹炲湴鍧鏄1000H锛屽悓鏃惰繖涓鎸囦护鏃跺崰涓や釜瀛楄妭鎵浠ユ墽琛屽悗绋嬪簭璁℃暟鍣鎸囧悜浜1002H閭d箞鐜板湪鎴戜滑鐨勭編鍏冪鍙锋寚鍦ㄥ垰鎵嶇殑褰撳墠鍦板潃1000H锛屾墍浠ヨ繖閲岀浉瀵瑰湴鍧灏卞簲璇ユ槸-2锛岃繖涓紪璇戝櫒鑷姩瀹屾垚銆傛槰澶╁垰闂繃鑰佸笀涓嶇煡閬撲綘鑳戒笉鑳界湅鎳 ...
  • 扩展阅读:数显计数器参数设置 ... 一拍照就能算出数的软件 ... 扫描计数 ... 汇编指令大全一览表 ... 数字计数器 ... 计数器怎么设置参数 ... 定位指令大全 ... 西门子graph计数器指令 ... 扫描计数王 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网