汇编指令如何转换为二进制或者十六进制? 汇编语言二进制转换为十六进制并显示的程序(简化段程序),能不...
\u673a\u5668\u8bed\u8a00\uff08\u4e8c\u8fdb\u5236\u6216\u5341\u516d\u8fdb\u5236\uff09\u662f\u5982\u4f55\u8f6c\u6210\u6c47\u7f16\u8bed\u8a00\uff08\u82f1\u8bed\uff09\u7684\uff1f \u80fd\u4e0d\u80fd\u8f6c\u6210\u4e2d\u6587\uff1f \u4e3a\u4ec0\u4e48\uff1f1.
\u4f60\u9700\u8981\u660e\u767d\uff0c\u5fae\u5904\u7406\u5668\u7684\u6240\u6709\u6267\u884c\u529f\u80fd\u90fd\u662f\u56fa\u5b9a\u7684\uff0c\u5e76\u4e14\u5b83\u4eec\u662f\u6709\u56fa\u5b9a\u987a\u5e8f\u7684\uff0c\u6bd4\u65b9\u8bf4\u572851\u6307\u4ee4\u96c6\u91cc\u529f\u80fd\u7684\u987a\u5e8f\u662f\uff1a
00\u2014\u2014Nop\uff08\u7a7a\u64cd\u4f5c\uff09
01\u2014\u2014AJmp\uff08\u7edd\u5bf9\u8df3\uff09
02\u2014\u2014LJmp\uff08\u957f\u8df3\uff09
03\u2014\u2014RR\uff08\u903b\u8f91\u53f3\u79fb\uff09
04\u2014\u2014Inc\uff08\u9012\u52a0\uff09
\u2026\u2026
\u4e5f\u5c31\u662f\u8bf4\uff0c51\u5355\u7247\u673a\u91cc\u5171N\u79cd\u529f\u80fd\uff0c\u7b2cX\u79cd\u529f\u80fd\u662f***\u3002
\u800c\u572880x86\u6c47\u7f16\u91cc\uff0c\u66f4\u52a0\u590d\u6742\u7684\u6c47\u7f16\u6307\u4ee4\u5176\u5b9e\u4e5f\u90fd\u662f\u6309\u987a\u5e8f\u7ec4\u7ec7\u597d\u7684\u201c\u6570\u5b57\u201d\uff0c\u6bd4\u5982ADD\u6307\u4ee4\uff0c\u6309\u7167\u5176\u64cd\u4f5c\u7801\u7684\u4e0d\u540c\uff08\u6bd4\u65b9\u8bf4\u76ee\u6807\u64cd\u4f5c\u7b26\u662fAx\u8fd8\u662fBx\uff09\uff0c\u4eceB8\u5f00\u59cb\u6709\u6570\u4e2a\u6807\u53f7\u90fd\u5c5e\u4e8eAdd\u6307\u4ee4\u3002
\u6c47\u7f16\u65f6\uff0c\u6211\u4eec\u5199\u7684\u4ee3\u7801\u90fd\u662f\u52a9\u8bb0\u7b26\u4e5f\u5c31\u662f\u8bf8\u5982Add\uff0cMov\u8fd9\u6837\u7684\u6307\u4ee4\uff0c\u800c\u7f16\u8bd1\u65f6\uff0c\u5c31\u4f1a\u628a\u8fd9\u4e9b\u6307\u4ee4\u6362\u6210\u5bf9\u5e94\u7684\u6570\u5b57\u4e86\u3002\u8fd9\u79cd\u8f6c\u6362\u662f\u56fa\u5b9a\u7684\uff0c\u4e5f\u5c31\u662f\u8bf4Mov\u6c38\u8fdc\u53ea\u4f1a\u8f6c\u6362\u6210\u90a3\u51e0\u79cd\u5f62\u5f0f\uff08\u4e4b\u6240\u4ee5\u4f1a\u6709\u597d\u51e0\u79cd\u662f\u56e0\u4e3a\u64cd\u4f5c\u6570\u7684\u7c7b\u578b\u4e0d\u540c\uff09\u3002
2.
\u673a\u5668\u8bed\u8a00\u5176\u5b9e\u5c31\u662f\u4e0a\u9762\u63d0\u5230\u7684\u201c\u6570\u5b57\u6807\u53f7\u201d\uff0c\u4e5f\u5c31\u662f\u6307\u529f\u80fd\u5e8f\u53f7\u3002\u6bd4\u65b9\u8bf4\u4e00\u6761\u673a\u5668\u8bed\u8a00\u662f00\uff0c\u6309\u7167\u4e0a\u9762\u7684\u8868\u627e\u51fa\u6765\uff0c\u5c31\u662fNop\u7a7a\u64cd\u4f5c\u6307\u4ee4\uff0c\u5f53\u5355\u7247\u673a\u4eceROM\u4e2d\u6267\u884c\u523000\u8fd9\u6761\u4ee3\u7801\u7684\u65f6\u5019\u5c31\u4f1a\u81ea\u52a8\u8c03\u7528\u201c\u7b2c00\u53f7\u529f\u80fd\u201d\uff0c\u800c\u8fd9\u4e2a\u529f\u80fd\u5c31\u662f\u7a7a\u64cd\u4f5c\u3002\u6240\u6709\u540c\u578b\u53f7\u768451\u5355\u7247\u673a\u90fd\u662f\u8fd9\u4e48\u5904\u7406\u7684\u3002
3.
\u4e0a\u9762\u4ece\u5b57\u9762\u4e0a\u89e3\u51b3\u4e86\u4f60\u8fd9\u4e2a\u95ee\u9898\u3002\u4f46\u662f\u6211\u770b\u4e86\u4f60\u7684\u8ffd\u95ee\uff0c\u4f3c\u4e4e\u4f60\u60f3\u77e5\u9053\u7684\u4e0d\u662f\u8fd9\u4e2a\uff0c\u800c\u662f\u6570\u5b57\u600e\u4e48\u53d8\u6210\u5b57\uff1f\u597d\u5427\u2026\u2026
\u9996\u5148\u4f60\u8981\u77e5\u9053ASCII\u7801\uff0c\u4e5f\u5c31\u662f\u6570\u5b57\u548c\u82f1\u6587\u5b57\u6bcd\u53ca\u6807\u70b9\u7b26\u53f7\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u4e3e\u4e2a\u4f8b\u5b50\uff0c65\u8fd9\u4e2a\u6570\u5b57\uff0c\u5728ASCII\u7801\u4e2d\u53ef\u4ee5\u8868\u793a\u5927\u5199\u5b57\u6bcdA\uff0c\u4f9d\u6b21\u7684\uff0c66\u53ef\u4ee5\u8868\u793aB\uff1b32\u8868\u793a\u7a7a\u683c\uff0c13\u8868\u793a\u56de\u8f66\uff0c\u7b49\u7b49\u3002ASCII\u7801\u5360\u4e00\u4e2a\u5b57\u8282\u3002
\u6c49\u5b57\uff0c\u6bd4\u8f83\u7279\u6b8a\u7684\u4e00\u7c7b\u5b57\u7b26\uff0c\u5173\u952e\u5c31\u5728\u4e8e\u5b83\u7684\u590d\u6742\u3002\u82f1\u6587\u5b57\u6bcd\u52a0\u4e0a\u6807\u70b9\u7b26\u53f7\u548c\u4e00\u5806\u7a00\u5947\u53e4\u602a\u7684\u7b26\u53f7\uff0c\u6491\u6b7b\u4e86\u7528127\u4e2aASCII\u7801\u8868\u793a\u5c31\u5b8c\u4e8b\u4e86\uff0c\u4f46\u662f\u5e38\u7528\u6c49\u5b57\u8fdc\u4e0d\u6b62\u5b83\u7684\u5341\u500d\u3002\u6240\u4ee5\u6c49\u5b57\u5728\u6570\u5b57\u903b\u8f91\u4e2d\u7684\u5904\u7406\uff0c\u662f\u6309\u53e6\u4e00\u79cd\u7f16\u7801\u5b58\u5728\u7684\u3002\u4e00\u822c\u7684ANSI\u683c\u5f0f\u6587\u4ef6\u662f\u5c06\u6c49\u5b57\u8868\u793a\u4e3aGB-2312\u7f16\u7801\uff0c\u8fd9\u79cd\u7f16\u7801\u8ddfASCII\u7801\u4e0d\u51b2\u7a81\uff0c\u5360\u4e24\u4e2a\u5b57\u8282\u3002\u5173\u4e8eGB-2312\u7f16\u7801\u7684\u5177\u4f53\u60c5\u51b5\u53ef\u4ee5\u767e\u5ea6\u67e5\u8be2\uff0c\u89c4\u5219\u6bd4\u8f83\u590d\u6742\uff0c\u6ca1\u529e\u6cd5\u7b80\u5355\u8bb2\u6e05\u695a\u7684\u3002\u6ce8\u610f\u8fd9\u91cc\u8bb2\u7684\u662f\u5b57\u7b26\u7684\u8868\u793a\u89c4\u8303\u3002
\u81f3\u4e8e\u6307\u4ee4\u80fd\u4e0d\u80fd\u7528\u6c49\u5b57\u6765\u8868\u793a\uff0c\u5c31\u662f\u76f8\u5f53\u4e8e \u52a0 A,#30 \u8fd9\u6837\u7684\u6307\u4ee4\u80fd\u5426\u5b58\u5728\uff0c\u6211\u60f3\u8bf4\u7684\u662f\uff0c\u5b8c\u5168\u53ef\u4ee5\u5b9e\u73b0\uff1b\u4f46\u662f\u8fd9\u79cd\u6c47\u7f16\u6307\u4ee4\u8ddf ADD A,#30 \u6709\u4ec0\u4e48\u533a\u522b\uff1f\u6211\u4eec\u53ea\u9700\u8981\u628a\u73b0\u6709\u7684\u6c47\u7f16\u7f16\u8bd1\u5668\u7a0d\u505a\u4fee\u6539\uff0c\u8ba9\u5b83\u53ef\u4ee5\u8bc6\u522b\u8fd9\u6837\u7684\u6307\u4ee4\uff0c\u7136\u540e\u5c06\u201c\u52a0\u201d\u6362\u6210ADD\uff0c\u518d\u628a\u5b83\u8f6c\u6362\u6210\u6570\u5b57\uff0c\u5728\u5b9e\u73b0\u4e0a\u548c\u7528Add\u6839\u672c\u6ca1\u6709\u533a\u522b\u3002
\u73b0\u5728\u7684\u201c\u6613\u8bed\u8a00\u201d\uff0c\u5dee\u4e0d\u591a\u4e5f\u662f\u7528\u7684\u8fd9\u79cd\u539f\u7406\uff0c\u53ea\u662f\u5199\u51fa\u4e86\u53ef\u4ee5\u8bc6\u522b\u6c49\u5b57\u6307\u4ee4\u7684\u7f16\u8bd1\u5668\uff0c\u7136\u540e\u8fd8\u662f\u4f7f\u7528\u7684\u5f62\u5982Delphi\u548cVB\u4e00\u6837\u7684\u7f16\u7a0b\u98ce\u683c\u3002\u8bf4\u767d\u4e86\u5c31\u662f\u5c06\u56fd\u5916\u7684\u4ea7\u54c1\u8fdb\u884c\u4e00\u4e2a\u201c\u5c71\u5be8\u201d\u3002\u5982\u679c\u4f60\u8fd8\u4e0d\u61c2\uff0c\u8bf4\u660e\u6211\u4e0a\u9762\u8bb2\u7684\u4f60\u6ca1\u61c2\u3002\u3002\u3002\u90a3\u6211\u4e5f\u6ca1\u529e\u6cd5\u3002
4.
\u5176\u5b9e\u5728\u5fae\u5904\u7406\u5668\uff0c\u6216\u8005CPU\u8fd0\u884c\u671f\u95f4\uff0c\u5185\u5b58\u4e2d\u53ea\u6709\u6570\u5b57\uff0c\u4e5f\u5c31\u662f\u4e8c\u8fdb\u5236\u7801\uff0c\u4e0a\u9762\u6240\u6709\u63d0\u5230\u7684\uff0c\u5305\u62ec\u6307\u4ee4\u548c\u5b57\u7b26\uff0c\u90fd\u662f\u6570\u5b57\u5f62\u5f0f\u5b58\u5728\u3002\u800c\u6211\u4eec\u901a\u5e38\u64cd\u4f5c\u65f6\u770b\u5230\u7684\u5b57\u7b26\uff0c\u90fd\u662f\u7528\u53e6\u5916\u7684\u65b9\u5f0f\uff08\u5982\u663e\u5361\uff09\u8f6c\u6362\u6210\u56fe\u5f62\u653e\u5230\u663e\u793a\u5668\u4e0a\u7684\uff0c\u5e76\u4e0d\u662f\u5904\u7406\u5668\u81ea\u5e26\u7684\u529f\u80fd\uff1b\u5355\u7247\u673a\u8981\u663e\u793a\u56fe\u5f62\u5b57\u7b26\uff0c\u9700\u8981\u53e6\u5916\u7f16\u7a0b\u3002
\u800c\u5bf9\u4e8e\u8f93\u5165\uff0c\u5176\u5b9e\u4e5f\u662f\u5c06\u8f93\u5165\u7684\u5b57\u7b26\u8f6c\u6362\u6210\u6570\u5b57\u624d\u80fd\u5b58\u50a8\u5230\u5185\u5b58\u4e4b\u4e2d\u3002
dseg segment msg0 db 'Input Binary Num:$' msg1 db 0dh,0ah, 'Hex Num:$' inBin db 17 ;\u5b58\u50a8\u8f93\u5165\u76842\u8fdb\u5236\u5b57\u7b26\u4e32\uff0c\u6700\u5927\u957f\u5ea616, \u6700\u540e\u4e00\u4e2a\u5b57\u7b26\u5b58\u50a8\u56de\u8f66 db 0 ;\u5b9e\u9645\u7684\u8f93\u5165\u957f\u5ea6 db 17 dup(0) ;\u5b58\u50a8\u8f93\u5165\u7684\u5b57\u7b26\u4e32 n dw 0dseg endsassume cs:cseg, ds:dsegcseg segmentstart: mov ax, dseg mov ds, ax call readBin ;\u8c03\u7528\u8f93\u51652\u8fdb\u5236\u7684\u51fd\u6570\uff0c\u7ed3\u679c\u5b58\u50a8\u5728n\u4e2d call outHex ;\u8c03\u7528\u5c06n\u630916\u8fdb\u5236\u8f93\u51fa\u7684\u51fd\u6570 mov ax, 4c00h int 21hreadBin proc near mov ah, 9 ;\u8f93\u51fa lea dx, msg0 ;msg0 int 21h ;\u8fd9\u4e2a\u5b57\u7b26\u4e32 mov ah,10 ;\u8bfb\u53d6\u8f93\u51fa\u7684\u5b57\u7b26\u4e32\u5230inBin\u4e2d lea dx, inBin ; int 21h ; mov cl, inBin+1 ;\u8f93\u5165\u7684\u5b57\u7b26\u4e32\u957f\u5ea6\u653e\u5165cx\u4e2d mov ch, 0 ; mov bx, 2 ;bx\u6307\u5411\u7b2c1\u4e2a\u5b9e\u9645\u8f93\u51fa\u5b57\u7b26\u7684\u4f4d\u7f6e xor ax, ax ;ax\u6e050r0: mov dl, inBin[bx] ;\u8bfb\u53d6\u7b2c[bx]\u4e2a\u8f93\u5165\u7684\u5b57\u7b26 and dl, 0FH ;\u5b57\u7b26\u8f6c\u6362\u4e3a\u5b9e\u9645\u7684\u6570\u503c 0\u62161 shl ax, 1 ;ax \u5de6\u79fb1\u4f4d add al, dl ;(al)+(dl) inc bx ;bx\u6307\u5411\u4e0b\u4e00\u4e2a\u5b57\u7b26 loop r0 ;\u5faa\u73af\u5904\u7406\u8f93\u5165\u76842\u8fdb\u5236\u5b57\u7b26\u4e32 mov n, ax ;\u5c06\u6700\u540e\u7ed3\u679c\u5b58\u5165n\u4e2d retreadBin endpoutHex proc near mov ah,9 ;\u663e\u793a lea dx, msg1 ;\u5b57\u7b26\u4e32 int 21h ;msg1 mov ch, 4 ;\u4e00\u4e2a\u5b57\uff0c\u67094\u4e2a\u5b57\u7b26\uff0c\u6240\u4ee5\u9700\u8981\u5904\u74064\u6b21 mov cl, 4 ;\u6bcf\u4e00\u6b21\uff0c\u79fb\u4f4d\u7684\u6570\u91cf\u4e3a4\u4e2abit mov bx, n ;\u8bfb\u53d6n\u5230(bx)\u4e2d mov ah,0eh ;\u4e3a\u8c03\u7528int 10h\uff0c\u8f93\u51fa(al)\u4e2d\u7684\u5b57\u7b26\u505a\u51c6\u5907O0: rol bx, cl ;bx\u5faa\u73af\u5de6\u79fb4\u4f4d\uff0c\u7b2c1\u6b21\u65f6\uff0c\u5373\u6700\u9ad84\u4f4d->\u6700\u4f4e4\u4f4d mov al, bl ;(al)9\uff0c\u5219\u4e3a16\u8fdb\u5236\u7684A-F add al, 7 ; \u6240\u4ee5\u8981\u52a0\u4e0a7\uff0c\u8f6c\u4e3a\u5bf9\u5e94\u7684ASCII\u5b57\u7b26O1: add al, 30h ;\u7edf\u4e00+30H int 10h ;\u8c03\u752810h\u4e2d\u65ad\uff0c\u8f93\u51fa\u5230\u5c4f\u5e55\u4e0a dec ch ;ch-- jnz O0 ; retoutHex endpcseg endsend start
一种是手工查表进行转换,找到针对CPU的汇编码的书,根据汇编语句查对应的机器码。另一种一种是用编译软件,对应于X86的,有ASM程序可以编译汇编程序,对应S51,也有专门的汇编编译程序
X86系统如果是少量的
用DEBUG软件,可以实现
用其中的A命令,输入汇编语句
然后用D命令就可以看到16进制的机器码
这是由于芯片厂商规定的机器指令格式,每种芯片面向市场,都会有其支持的指令集,跟详细的有汇编指令对于的机器码格式。虽然同样是mov指令,但其操作数不同时,寻址方式不同时,其对应着不同的机器码格式,软件供应商根据这个资料提供相应的编译器将不同的汇编指令编译成机器指令。。。不同指令如mov与sub,或同一指令不同操作数如mov ax,bx与mov ax,10H其都有具体的翻译格式,和执行周期(即执行时间),阿门。。。
你的问题牵扯的是《芯片的架构》或《芯片的汇编指令机器码格式》主题,阿门。。。
这是编译器的工作 可以用OD来把汇编指令转换成机器码
没明白你啥意思
一个汇编助记符号代表一个八位二进制数
你看看51的指令集就知道了
绛旓細;5.9 disp macro str lea dx,str mov ah,09h int 21h endm DATAS SEGMENT mess1 db 'Input 0~9 or a~f:','$'mess2 db 'The binary is:','$'crlf db 0ah,0dh,24h DATAS ENDS STACKS SEGMENT ;姝ゅ杈撳叆鍫嗘爤娈典唬鐮 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS ...
绛旓細;=== ASSUME CS:CODE, DS:DATA DATA SEGMENT MSG1 DB 13, 10, 'Please input a number(0~255): $'MSG2 DB 13, 10, 'Input a invalid number, exit! $'CRLF DB 13, 10, ' = $'NNNN DB ?DATA ENDS ;--- CODE SEGMENT START:MOV AX,...
绛旓細浜岃繘鍒鏄細0BH=1011B 24H=100100B 09H=1001B鍗佽繘鍒鏄細0BH=11*16鐨0娆℃柟=11 24H=2*16鐨1娆℃柟+4*16鐨0娆℃柟=36 09H=9*16鐨0娆℃柟=9
绛旓細鍥犱负鍦ㄨ绠楁満涓,鍚勭淇℃伅鍜屾暟鎹兘鏄互鏂囦欢褰㈠紡瀛樻斁鐨.鍦ㄧ紪杈戞柟寮忎笅寤虹珛璧锋潵鐨勭▼搴忔枃浠剁О涓烘簮绋嬪簭鏂囦欢,绠绉版簮鏂囦欢(濡俷oname.c),鐩稿簲鐨勭▼搴忓彨鍋氭簮绋嬪簭.婧愮▼搴忔槸鐢ㄩ珮绾ц瑷缂栧啓鐨,瀹冧笉鑳界洿鎺ュ湪鏈哄櫒涓婅繍琛.鍥犱负璁$畻鏈哄苟涓嶈兘璇嗗埆婧愮▼搴,瀹冧粎璁よ瘑瑙勫畾鑼冨洿鍐呯殑涓绯诲垪浜岃繘鍒浠g爜鎵缁勬垚鐨鎸囦护鏁版嵁,骞舵寜棰勫畾鐨勫惈涔...
绛旓細鑻鍗佽繘鍒鏁版湁鏁存暟涔熸湁灏忔暟锛屽垯鏁存暟鍜屽皬鏁板垎鍒浆鎹紝鍐嶆眰鍏跺拰鍗冲彲銆備緥锛11.375D=()B 0.375*2=0.75 鈥︹0 0.75*2=1.5 鈥︹1 0.5*2=1.0 鈥︹1 0.375D=0.011B 浜岃繘鍒惰浆鎹㈠叓杩涘埗鎴鍗佸叚杩涘埗 浜岃繘鍒惰浆鎹负鍏繘鍒跺拰鍗佸叚杩涘埗锛屼富瑕佺殑鐗圭偣鏄皢浜岃繘鍒惰繘琛屾媶鍒嗙劧鍚庢寜鐓杞崲鍗杩涘埗鏉...
绛旓細杩欐槸鎴戞浘缁忓啓鐨勪竴涓▼搴忥紝杩欐浠g爜鐨勪綔鐢ㄦ槸寰幆4娆¤緭鍏4浣16杩涘埗鏁帮紝鎴戞妸瀹冭浆鎹綅2杩涘埗鏁帮紝鏂规硶灏辨槸瀵逛簬姣忎竴浣嶆暟锛堢幇鍦ㄦ槸ASCII鐮侊級杞寲涓0鈥斺9鎴朼鈥斺攆鐨勬暟锛岀劧鍚庡乏绉4浣嶏紝鏀惧埌涓涓彉閲忛噷闈紝寰幆灏辫浜嗭紝涔熷氨鏄16杩涘埗杞崲涓2杩涘埗鐨勫熀鏈畻娉曪紝宸︾Щ4浣嶏紝涓嶆柇鐨勮繘琛屻傘俋OR BX,BX ;BX閲岄潰鏀...
绛旓細dseg segment msg0 db 0dh,0ah, '***Menu***',0dh,0ah db '* 1.Input Binary Number:*',0dh,0ah db '* 2.Input Decimal: *',0dh,0ah db '* 3.exit *',0dh,0ah db '***',0dh,0ah,'$' msg1 db 0dh,0ah,'Input Binary Number:$' msg2 d...
绛旓細浠ヤ笅绋嬪簭灏10涓袱浣嶅帇缂゜cd鏁杞寲涓轰簩杩涘埗鏁帮紝骞跺拰缁欏嚭鐨勭粨鏋滆繘琛屾瘮杈冦備緵鍙傝冿細 CODE SEGMENT ASSUME CS:CODE ORG 100H START: JMP BB SR DB 31H,32H,61H,41H,42H,03H,77H,81H,93H,55H DE DB 1FH,20H,3DH,29H,2AH,03H,4DH,51H,5DH,37...
绛旓細鍙互鐢10鍙峰姛鑳借皟鐢紝杈撳叆瀛楃涓诧紝鍒ゆ柇鏈鍚庝竴涓紝鏄笉鏄疕锛屾潵纭鏄10杩涘埗锛岃繕鏄16杩涘埗銆
绛旓細CALL ASC2BIN ;璋冪敤:鍗佸叚杩涘埗瀛楃鐨凙SCII杞负浜岃繘鍒鍊 MOV BL,AL MOV CL,04H SHL BL,CL ;鍒╃敤閫昏緫宸︾Щ鎸囦护绉诲埌BL鐨勯珮鍥涗綅,鑻ヨAL=???abcd,鍒橞L=abcd0000 MOV AH,01H ;杈撳叆绗簩涓瓧绗(鍗佸叚杩涘埗鏁扮殑浣庝綅)INT 21H CMP AL,'0' ;寮傚父鎯呭喌澶勭悊锛堣緭鍏ュ瓧绗︿笉鍦...