1樓:雷哥談安全生產標準化
62627=f4a3h
1.mov ax,62627 ax=f4a3 ;給ax賦值f4a3,ah=f4 al=a3
2.mov ah,31h ax=31a3 ;給ah賦值31,al不變,
3.mov al,23h ax=3123 ;給al賦值23,ah不變
4.add ax,ax ax=6246 ;兩個ax相加
5.mov bx,826ch bx=826c ;給bx賦值826c
6.mov cx,ax cx=6246 ;用ax的值給cx賦值,此時ax=6246 cx=6246
7.mov ax,bx ax=826c ;用bx的值給ax賦值,此時,bx=826c ax=826c
8.add ax,bx ax=04d8 ;將bx的值加到ax的值
9.mov al,bh ax=0482 ;用bh的值(82)給al賦值
10.mov ah,bl ax=6c82 ;用bl的值(6c)給ah賦值
11.add ah,ah ax=d882 ;ah的值相加,al的值不變 6c+6c=d8
12.add al,6 ax=d888 ;al的值加6,ah的值不變
13.add al,al ax=d810 ;al的值和al的值相加,ah的值不變,88+88=110h,但是發生在低位,不能進位,所以ah的值不變,也就是說,在這裡ax=d910是錯誤的
14.mov ax,cx ax=6246 ;用cx的值給ax進行賦值
好了,,
2樓:
(1)寫出每條彙編指令執行後相關暫存器中的值。
第一空:f4a3h ;<--把十進位制數62627變成十六進位制就是結果f4a3h
第二空:31a3h ;<--ah=31h,al不變,所以ax=31a3h
第三空:3123h ;<--al=23h,ah不變,所以ax=3123h
第四空:6246h ;<--ax=ax+ax=3123h+3123h=6246h,用計算器算一下結果就出來了
第五空:826ch ;<--bx=826ch,ax不變
第六空:6246h ;<--cx=ax=6246h
第七空:826ch ;<--ax=bx=826ch
第八空:04d8h ;<--ax=ax+bx=826ch+826ch=04d8h,0前面還有個1,但是ax放不下,所以丟棄,16位暫存器只能放下四位十六進位制數
第九空:0482h ;<--al=bh=82h,ah不變
第十空:6c82h ;<--ah=bl=6ch,al不變
第十一空:d882h ;<--ah=ah+ah=6ch+6ch=d8h,al不變
第十二空:d888h ;<--al=al+6=82h+6=88h,ah不變
第十三空:d810h ;<--al=al+al=88h+88h=10h,ah不變,結果是110h但al的大小隻有8位二進位制位,能放下的最大數為ffh,所以高位丟棄,只保留低兩位
第十四空:6246h ;<--ax=cx=6246h
3樓:匿名使用者
mov ax,62627 ax=
這是十進位制,儲存記憶體單中需要轉16進位制即:f4a3mov ah,31h ax=
ax表示一個字(2個位元組大小)ah,表示高8位,al表示低8位。前面ax=f4a3,f4表示高8位,a3表示低8位,把31h轉移到ah,即ax=31a3h
mov al,23h ax=同理ax=3123h
如果把大於16位轉到儲存器,則保留後面4位mov ax,1ffffh
ax=ffffh
王爽組合語言的檢測點 12.1
4樓:匿名使用者
8086系統在儲存器的最低1kb區域(00000h~003ffh)建立一箇中斷向量表,存放256箇中斷型別的中斷向量。這1024個單元被分成256組,每組包括4個位元組單元,儲存一箇中斷向量的段基址和段內偏移地址,高2個位元組用於存放段基址,低兩個位元組用於存放段內偏移地址。
8086系統把中斷向量表中的中斷明確分為3個部份:
1.專用中斷:型別號0~4(所以中斷不是從1開始,而是0)
2.系統備用中斷:型別號5~31h
3.使用者中斷:型別號32h~0ffh
檢測點12.1分析:
計算中斷服務入口地址的方法是:從記憶體地址為中斷型別碼*4和中斷型別碼*4+2的兩個字單元中讀取中斷處理過程的入口地址設定ip和cs
0000:0000 68 10 a7 00 8b 01 70 00-16 00 9d 03 8b 01 70 00
段基址:偏移地址 0 1 2 3 4 5 6 7 8 - 9 10 11 12 13 14 15(16個bytes,「-」為分隔符,每8個bytes分隔一次)
0號:00a7:1068
1號:0070:108b
2號:039d:0016
3號:0070:108b
3號:ip讀取3*4=12的兩個bytes就是12和13兩個bytes,cs讀取3*4+2=14的兩個bytes就是14和15兩個bytes。
希望能對你有所幫助!
組合語言 王爽第二版檢測點6.1(2) 麻煩幫我對每條指令註釋一下,特別是那迴圈。 謝謝幫忙
5樓:匿名使用者
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0,0,0,0,0,0mov sp,1ah ;只有這裡 1ah 就是 1ah=26=8*2+10
其實自己看看就知道了。
王爽 組合語言第二版 的檢測點3.2
6樓:匿名使用者
逆序當然是對稱的。
這個sp=0,是因為後面全是pop,就是把10000h~1000fh當成棧了,現在是滿棧的情況,自然sp指向棧頂,也就是sp=0.然後依次出棧,從[e]往[0]填,就成逆序了。
7樓:
pop出棧,sp自加2
sp指向始終為棧頂,而不是用sp來設定棧的大小,想讓10000h~1000fh地址單元中的資料出棧,代表此時棧中有資料,而不是空棧,棧頂在0h
8樓:匿名使用者
2的16次方。64k。8086的段內轉移最大值。
實地址模式。
懂組合語言的進,組合語言高手進
很簡單的程式。輸入的數字,是acscii碼形式的,要減去30h,才是數字形式的數字。程式中,兩個輸入數字,全都減去了30h,然後進行了加法,結果存入ral單元。輸出顯示,要先把數字,變換成ascii碼,僅僅加30h,是不全面的,數字大於9,就要加37h,這些可以去查ascii表,求得證明。dseg ...
組合語言程式設計
一 mov di,0000h 讓ds di指向字串mov cx,n 設定迴圈次數mov al,a 設定掃描的字母cld 設定df為0repne scasb 開始掃描jz found 找到則跳轉mov di,00h 沒找到則讓di指向字串開頭found mov bx,di 讓bx記錄a所在位置hlt ...
組合語言lea是什麼意思,組合語言 lea 是什麼意思?
lea是微機8086 8088系列的一條bai指令,取自du 英語load effective address 取zhi有效地址,也就是取偏dao移地回址。lea指令將儲存器操答作數mem的4位16進位制偏移地址送到指定的暫存器。這裡,源運算元必須是儲存器運算元,目標運算元必須是16位通用暫存器。因...