汇编语言怎么让三十二位逻辑左移? 求汇编语言编程 把32位逻数 3F65C9232H 逻辑左移...

\u600e\u6837\u7528\u6c47\u7f16\u8bed\u8a00\u5c06AC,AX\u4e2d32\u4f4d\u6570\u503c\u903b\u8f91\u53f3\u79fb\u4e00\u4f4d\uff1f


\u5148\u6e05\u8fdb\u4f4d\uff0c\u7136\u540e\u5bf9ax\u8fdb\u884c\u903b\u8f91\u53f3\u79fb\u4e00\u4f4d\uff0cax\u7684\u9ad8\u4f4d\u5c31\u5c06\u79fb\u5165\u8fdb\u4f4d\u91cc\uff0c\u5224\u65ad\u8fdb\u4f4d\uff0c\u5982\u679c=1\uff0c\u5219\u7d2f\u52a0\u5668AC x 2+1\uff0c\u5426\u5219 \u7d2f\u52a0\u5668AC x 2

\u8fd9\u4e2a\u662f36\u4f4d\u554a\uff0c\u6309\u524d32\u4f4d\u4e3a\u4f8b\u3002

; \u672c\u7a0b\u5e8f\u901a\u8fc7\u7f16\u8bd1\uff0c\u8fd0\u884c\u6b63\u786e
Code Segment
Assume CS:Code,DS:Code,ES:Code
; \u628a32\u4f4d\u903b\u6570 3F65C9232H \u903b\u8f91\u5de6\u79fb2\u4f4d \u7ed3\u679c\u5b58\u5728DX\uff1bAX\u4e2d
Start: mov dx,3F65h
mov ax,C923h
shl ax,1
rcl dx,1
shl ax,1
rcl dx,1
Exit_Proc: mov ah,4ch ;\u7ed3\u675f\u7a0b\u5e8f
int 21h
Code ENDS
END Start ;\u7f16\u8bd1\u5230\u6b64\u7ed3\u675f

用带进位的左移,就是RCL
左移时把操作数的最高位移入CF,而CF中原有内容移入操作数的最低位
先用RCL移低位的,再用RCL移高位的就好了,给你弄个注释吧:
假设用AX和DX存放这个32位的数据,AX是高位
AX=1111000011110000B DX=1100110011001100B

ADD AX,0;CF清零,不然左移的时候最低位可能会是1
RCL DX,1
;执行后DX=1001100110011000B
;CF里的0移到最低位,最高位的1再移到CF里,其他位顺序左移
RCL AX,1
;执行后AX=1110000111100001B
;原来DX的最高位移出来的1又通过CF移到了AX的最低位
;这样就实现32位的移位了
===================================================================
RCL的详细使用方法:
带进位的循环左移 RCL (rotate left through carry)

指令的汇编格式:RCL dst,cnt
指令的基本功能:RCL 对由dst指定的寄存器或存储器操作数,连同进位标志CF左循环移动,m所指定的次数,每左移一次,把操作数的最高位移入CF,而CF中原有内容移入操作数的最低位。
指定支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。
指令对标志位的影响:CF=移入的数值。
OF=1 当cnt=1时,移动后最高位的值未发生变化。
OF=0 当cnt=1时,移动后最高位的值发生变化。
SF、ZF、PF标志位不受影响。



因为rol是循环左移指令,所以左移出来的最高位会移入最低位和cf
因为ax
=
0428h
0428h
=
0000
0100
0010
1000h
左移两位后,变成了0001
0000
1010
0000
=
10a0h
楼主,到了这里,你可以这么做,因为是循环左移,所以左移掉的位数,直接接到二进制串的后面就行了
例如这道题(00)00
0100
0010
1000,我们把它的前两位去掉,然后接到后面
0001
0000
1010
00(00)
ps:若有不明白的地方,可以追问

在原来16位寄存器助记符前边加字母E即可. 例如 SL AX (适用于16位CPU8088/86) SL EAX (用于32位CPU80286/386/486/586)

用shl 指令,
32位的移位指令还有很多
比如:shr逻辑右移
sal算术左移
sar算术右移
rol循环左移
ror循环右移
rcl带进位的循环左移
rcr带进位的循环右移
shld双精度的左移
shrd双精度右移
建议你去看看《intel汇编语言程序设计》的第四章
这本书有电子版的,你可以到IT实验室去下

  • 姹囩紪璇█鎬庝箞璁╀笁鍗佷簩浣嶉昏緫宸︾Щ?
    绛旓細鍏堢敤RCL绉讳綆浣嶇殑,鍐嶇敤RCL绉婚珮浣嶇殑灏卞ソ浜,缁欎綘寮勪釜娉ㄩ噴鍚:鍋囪鐢ˋX鍜孌X瀛樻斁杩欎釜32浣嶇殑鏁版嵁,AX鏄珮浣 AX=1111000011110000B DX=1100110011001100B ADD AX,0;CF娓呴浂,涓嶇劧宸︾Щ鐨勬椂鍊欐渶浣庝綅鍙兘浼氭槸1 RCL DX,1 ;鎵ц鍚嶥X=1001100110011000B ;CF閲岀殑0绉诲埌鏈浣庝綅,鏈楂樹綅鐨1鍐嶇Щ鍒癈F閲,鍏朵粬浣嶉『搴忓乏...
  • 鎬庢牱鐢姹囩紪璇█瀹炵幇灏(DX)(AX)涓殑鍙屽瓧閫昏緫宸︾Щ涓浣
    绛旓細閫昏緫宸︾Щ=绠楁暟宸︾Щ锛屽彸杈圭粺涓娣0 閫昏緫鍙崇Щ锛屽乏杈圭粺涓娣0 绠楁暟鍙崇Щ锛屽乏杈规坊鍔犵殑鏁板拰绗﹀彿鏈夊叧 e.g:1010101010锛屽叾涓璠]浣嶆槸娣诲姞鐨勬暟瀛 閫昏緫宸︾Щ涓浣嶏細010101010[0]绠楁暟宸︾Щ涓浣嶏細010101010[0]閫昏緫鍙崇Щ涓浣嶏細[0]101010101 绠楁暟鍙崇Щ涓浣嶏細[1]101010101 鎵浠ュ浜庡弻瀛楀氨鏄 SHL AX,1鏈楂樹綅绉诲叆CF RCL...
  • 姹姹囩紪璇█缂栫▼ 鎶32浣嶉鏁 3F65C9232H 閫昏緫宸︾Щ2浣 缁撴灉瀛樺湪DX...
    绛旓細; 鏈绋嬪簭閫氳繃缂栬瘧锛岃繍琛屾纭 Code Segment Assume CS:Code,DS:Code,ES:Code ; 鎶32浣嶉鏁 3F65C9232H 閫昏緫宸︾Щ2浣 缁撴灉瀛樺湪DX锛汚X涓 Start: mov dx,3F65h mov ax,C923h shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 Exit_Proc: mov ah,4ch ;缁撴潫绋嬪簭 int 21h Code ...
  • 宸茬煡鏈変竴涓32浣嶆暟瀛樻斁鍦―X,AX涓,璇曠紪鍐欎竴涓姹囩紪璇█绋嬪簭灏32浣嶆暟宸︾Щ4...
    绛旓細ROL DX, CL; 灏咲X鐨勫惊鐜宸︾Щ4浣嶏紝鏈楂4浣嶇Щ鍒版渶浣4浣 XOR CH, CH; CH娓呴浂 OR CH, DL AND CH, 0FH; 鍘熸潵DX鏈楂4浣嶅瓨鍏H ROL AX, CL MOV CL, AL AND CL, 0FH AND DL, 0F0H OR DL, CL AND AL, 0F0H; AL浣4浣嶅~0 ...
  • ...閫昏緫宸︾Щ涓浣嶇殑鍏蜂綋鎿嶄綔,鐢姹囩紪璇█缂栧啓,鍐欏叿浣撲簺鏈濂姐
    绛旓細shl ax,1 ;灏哸x宸︾Щ1浣嶏紝杩欐椂鍊欐渶楂浣嶇Щ鍒癈F涓 rcl dx,1 ;灏哾x甯﹁繘浣嶅惊鐜乏绉讳竴浣嶏紝灏咰F锛堝瓨鏀剧殑鏄垰鎵峚x鐨勬渶楂樹綅锛夌Щ鍒癲x鏈浣庝綅涓婏紝鍚屾椂dx鎵鏈浣嶅乏绉1浣嶏紝dx鏈楂樹綅绉诲埌CF涓俽cl鏄妸鎿嶄綔鏁扮殑鏈楂浣嶇Щ鍏F锛岃孋F涓師鏈夊唴瀹圭Щ鍏ユ搷浣滄暟鐨勬渶浣庝綅 ...
  • 姹囩紪璇█閫昏緫宸︾Щ
    绛旓細鍥犱负ROL鏄惊鐜宸︾Щ鎸囦护,鎵浠ュ乏绉诲嚭鏉ョ殑鏈楂樹綅浼氱Щ鍏ユ渶浣庝綅鍜孋F鍥犱负AX = 0428H0428H = 0000 0100 0010 1000H宸︾Щ涓や綅鍚,鍙樻垚浜0001 0000 1010 0000 = 10A0H妤间富,鍒颁簡杩欓噷,浣犲彲浠ヨ繖涔堝仛,鍥犱负鏄惊鐜乏绉,鎵浠ュ乏绉绘帀鐨勪綅鏁,鐩存帴鎺ュ埌浜岃繘鍒朵覆鐨勫悗闈㈠氨琛屼簡渚嬪杩欓亾棰(00)00 0100 0010 1000,鎴戜滑鎶婂畠鐨勫墠涓...
  • <姹囩紪璇█> 棰樼洰璇锋暀
    绛旓細杩欐槸涓惊鐜绋嬪簭锛屽叡鎵ц4娆″惊鐜綋銆傚姛鑳芥槸锛氭妸DX:AX缁勬垚鐨32浣浜岃繘鍒舵暟锛圖X涓洪珮浣嶅瓧锛孉X涓轰綆浣嶅瓧锛夋暣浣宸︾Щ4浣嶏紝鐩稿綋浜庝竴涓32浣嶄簩杩涘埗鏁颁箻浠16銆
  • 姹囩紪璇█涓殑绉讳綅鎸囦护鍏蜂綋鐨勬搷浣滄槸浠涔?
    绛旓細SHL/SAL涓鏍:閫昏緫/绠楁湳宸︾Щ,鏈楂樹綅杩涘埌CF锛屾渶浣庝綅琛0锛沑x0d\x0aSHR锛氶昏緫鍙崇Щ,鏈浣庝綅杩涘埌CF锛屾渶楂樹綅琛0锛沑x0d\x0aSAR锛氱畻鏈彸绉,鏈浣庝綅杩涘埌CF锛屾渶楂樹綅涓嶅彉锛沑x0d\x0aROL锛氬惊鐜乏绉伙紝鏈楂樹綅杩涘埌CF鐨勫悓鏃惰ˉ鍒版渶浣庝綅锛沑x0d\x0aROR锛氬惊鐜彸绉伙紝鏈浣庝綅杩涘埌CF鐨勫悓鏃惰ˉ鍒版渶楂樹綅...
  • 姹囩紪璇█lsl鏄粈涔堟剰鎬
    绛旓細閫昏緫宸︾Щ鎸囦护LSL鍦姹囩紪璇█涓殑浣滅敤鏄皢鎸囧畾鐨勪簩杩涘埗鏁扮殑鎵鏈変綅鍚戝乏绉诲姩鎸囧畾鐨勪綅鏁般傚湪閫昏緫宸︾Щ鎿嶄綔涓紝鏈宸﹁竟鐨勪綅锛堝嵆鏈楂樹綅锛岄氬父鏄鍙蜂綅锛変細琚涪寮冿紝鑰屾渶鍙宠竟鐨勪綅鍒欎細鐢0鏉ュ~鍏呫傝繖涓搷浣滅殑鏁堟灉鐩稿綋浜庡皢璇ユ暟涔樹互2鐨勬寚瀹氭鏂广傚叿浣撴潵璇达紝濡傛灉鏈変竴涓8浣嶄簩杩涘埗鏁01101010锛堝嵆鍗佽繘鍒剁殑106锛夛紝鎴戜滑...
  • 扩展阅读:万能表新手教程 ... 同一律 矛盾律 排中律 ... 钳形万用表档位图解 ... 万能表口诀顺口溜 ... 一张图看懂万能表 ... 汇编语言伪指令大全 ... 情商口才训练1000句 ... 汇编指令解释大全 ... 万能表用法 ...

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