1樓:匿名使用者
code segment ;段開始標誌assume cs:code ;用assume將cs與該code段關聯起來
start: ;程式入口標誌
mov al,0abh ;對將資料放入暫存器ax中,(ax)=0abh
mov cl,4 ;對將資料放入暫存器cx中,(cx)=4rol al,cl ;對al的8位資料進行向右的迴圈左移,一共移動4位(也就是cx的值)。所謂迴圈右移1位,就是將最低位的0或1放到最高位,其他位向右移動1位。這樣移動4位之後,al中的低四位資料就跑到高四位了,而高四位資料跑到低四位了。
mov ax,4c00h ;剩下兩句是用來終止程式用的int 21h
code ends ;段結束標誌
end start ;程式結束標誌
2樓:匿名使用者
好基礎啊, 好基礎.
code segment ;;**段開始
assume cs:code ;;**段地址
start:mov al,0abh ;;start是一個標籤, 取運算元0abh 放在暫存器al中
mov cl,4 ;;將4放在暫存器cl中
rol al,cl ;;將al中的數迴圈左移cl位(4位), 完成高低4位互換
mov ax,4c00h ;;4c00 -> ax
int 21h ;;呼叫中斷21h, 退出程式
code ends
end start
最終執行完...就是在cpu中換了下高低位, 什麼也沒有輸出. over.
3樓:
code segment ;;**段開始
assume cs:code ;;**段地址和cs段暫存器關聯
start:mov al,0abh ;;start是一個標籤, 將運算元0abh 放在暫存器al中
mov cl,4 ;;將4放在暫存器cl中
rol al,cl ;;將al中的數迴圈左移4位 左移的位數時根據cl的值來決定
mov ax,4c00h ;;21號中斷的4c號功能用於退出程式返回執行權給作業系統
int 21h ;;呼叫中斷21h, 退出程式 不寫這個你的程式執行後dos就會死住無法繼續操作
code ends
end start
4樓:匿名使用者
start: al=0xab
cl=4
al迴圈左移4位後al=0xba
ax=0x4c00
執行中斷21(程式 返回)
用8086組合語言編寫程式,接受從鍵盤上輸入的一個兩位十進位制數字,這個數經過bcd碼處理,以十六進位制顯示出
5樓:做而論道
;********************==
disp_str macro x ;巨集定義.
mov dx, offset x
mov ah, 9
int 21h
endm
;----------------------
data segment ;資料段.
msg1 db 13, 10, 'please input : $'
msg3 db 13, 10, 'the hex is : $'
x dw ? ;存放新輸入資料.
data ends
;----------------------
code segment ;**段.
assume cs: code, ds: data
start:
mov ax, data
mov ds, ax
;--------------------------------
in_loop:
disp_str msg1 ;巨集呼叫,提示 please input :
;--------------------------------
mov x, 0 ;資料清零.
_inx:
mov ah, 1 ;輸入字元.
int 21h
;--------------------------------
cmp al, 13 ;回車?
je _in_end ;是則結束輸入.
cmp al, '0'
jb in_loop ;小於'0',不是數字.
cmp al, '9'
ja in_loop ;大於'9',不是數字.
sub al, '0'
mov cl, al
mov ch, 0
mov ax, x
mov bx, 10 ;老資料乘以10
mul bx
add ax, cx ;加上新資料.
mov x, ax ;儲存.
cmp ax, 99
ja in_loop
jmp _inx
;--------------------------------
_in_end:
disp_str msg3 ;巨集呼叫,提示 the hex is :
mov ax, x
mov bx, 16
mov cx, 0
d_1:mov dx, 0
div bx
add dl, '0'
cmp dl, 3ah
jb zzz
add dl, 7
zzz:
push dx
inc cx
cmp ax, 0
jne d_1
mov ah, 2
d_2:pop dx
int 21h
loop d_2
;--------------------------------
mov ah, 4ch
int 21h
;--------------------------------
code ends
end start
;********************=
6樓:匿名使用者
學彙編,要用到哪些軟體
用組合語言編寫程式,用組合語言編寫一個程式。
那個 是可以,但是其實可以更簡單,小寫字母內碼範圍是61h 7ah 大寫字母內碼範圍是41h 5ah 那麼只要比較輸入的字元內碼是否在61h 7ah之間如果是,則將其減去20h,就是大寫字母了 print macro para 定義一個顯示字串的巨集 lea dx,para mov ah,9 int...
用組合語言編寫簡單程式,用組合語言編寫一個簡單程式
1.計算u x y z 100 w 其中 x,y,z,w均為十六位有符號數。程式如下 data segment x dw 10 16位變數 y dw 20 z dw 30 w dw 40 u dw data ends code segment assume cs code,ds data start...
彙編子程式的問題,組合語言子程式是如何定義的
這不是返回自己本身迴圈執行,而是跳轉到子程式的第一行迴圈而已,有什麼不可以的,迴圈結構,任何地方都可以的。但有一點,子程式不論迴圈多少次,最終必須執行一行返加指令ret,也就是子程式必須要有一條ret指令,你的子程式最後是缺少一行ret指令的,加上了就可以的。組合語言子程式是如何定義的?這樣定義的 ...