組合語言程式設計問題編寫組合語言程式。能每隔10秒顯示數字分別為

時間 2021-09-01 18:46:16

1樓:匿名使用者

org 0000h ; 數碼管共陰

ajmp main

org 000bh

t0ms equ not 50000 ; 100 ms 晶振 6.000 mhz

pjsbz equ 20h

pjsbzy equ 21h

pst0: mov tl0, #low t0ms ; t0 中斷

mov th0, #high t0ms

setb pjsbz ; 100 ms 標誌

djnz r6, pst02

mov r6, #100 ; 100 ms * 100 = 10 s

setb pjsbzy ; 10 s 標誌

pst02: reti

main: mov tmod, #01h

mov ie, #82h ; 開 t0 中斷

mov sp, #30h

mov tl0, #low t0ms ; to 100ms 中斷 計時 0

mov th0, #high t0ms

setb tr0

mov r6, #10 ; 計時初值

mov dptr,#tab

main1: mov r0, #0

main2: jnb pjsbzy, $ ; 10 s

clr pjsbzy

mov a, r0

movc a,@a+dptr

mov sbuf, a

inc r0

cjne r0, #0ah, main2

ajmp main1

tab: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh

db 77h, 7ch, 39h, 5eh, 79h, 71hend

2樓:匿名使用者

先採後會,告訴我你郵箱

組合語言程式設計 編寫一程式,使得計算機螢幕上每隔五秒顯示一行字元"good morning",按任意

3樓:匿名使用者

1.除錯通過 ,用masm編譯,其實邏輯很簡單,用中斷21h的9號中斷服務程式顯示字串good morning

(注意,字串應該以$結束),**如下:

mov dx,offset content

mov ah,9

int 21h

2。然後呼叫延時子程式延時5s,我的延時不一定精確,只是象徵性的延時,你可以根據延時時間具體計算,很容易的,延時子程式在delay,你只需改變bx,cx的值即可改變延時時間

3.最後用中斷16h的1號中斷服務程式判斷是否有按鍵按下,若有鍵盤按下,該功能置zf = 0,否則 zf = 1,**如下:

mov ah,01h

int 16h

4.判斷zf是否為1 ,為1 ,證明無按鍵按下,跳轉a1繼續輸出字串,否則結束程式

以上就是我的程式的思路,是不是很簡單啊,具體程式如下,如果有什麼問題可以繼續問,一定為你解答!

data segment

content db 'good morning ','$'

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

a1:mov dx,offset content

mov ah,9

int 21h

call delay

mov ah,01h

int 16h

jz a1

mov ah,4ch

int 21h

delay proc near

mov bx,25000

a2:mov cx,20000

loop $

dec bx

jnz a2

retdelay endp

code ends

end start

4樓:匿名使用者

#include

#include

using namespace std;

void main()

for (;;)

cout<<"good morning"

執行結果每五秒顯示一次:

記得采納哦

組合語言程式 使數碼管顯示1,2,3,4,5,6,7,8

5樓:匿名使用者

scanled equ 30h

org 0000h

ljmp main

org 001bh

ljmp t1isr ;掃描顯示

org 0030h

main:

mov sp,#5fh

mov tmod,#10h

mov th1,#0ech

mov tl1,#078h

mov scanled,#0

setb et1

setb tr1

setb ea

sjmp $

;--------------------t1isr:

clr tr1

mov th1,#0ech

mov tl1,#78h

setb tr1

mov dptr,#ledtab

mov r2,scanled

mov a,#01h

cjne r2,#0,t1dis0

sjmp t1dis1

t1dis0:

rl a

djnz r2,t1dis0

t1dis1:

mov p2,a

mov a,scanled

inc a

movc a,@a+dptr

mov p0,a

inc scanled

mov a,scanled

cjne a,#8,t1end

mov scanled,#0

t1end:

reti

;--------------------ledtab:

db 0c0h ;"0" 00h

db 0f9h ;"1" 01h

db 0a4h ;"2" 02h

db 0b0h ;"3" 03h

db 99h ;"4" 04h

db 92h ;"5" 05h

db 82h ;"6" 06h

db 0f8h ;"7" 07h

db 80h ;"8" 08h

db 90h ;"9" 09h

db 88h ;"a" 0ah

db 83h ;"b" 0bh

db 0c6h ;"c" 0ch

db 0a1h ;"d" 0dh

db 86h ;"e" 0eh

db 8eh ;"f" 0fh

db 0ffh ;" " 10h

;--------------------end

6樓:匿名使用者

你這問題沒有辦法幫忙,是要**哪,還是在你的實驗板上顯示,什麼也不說,就要幫忙,忙不了。

用完整的組合語言編寫使數碼管迴圈顯示0,1,2,3,4,5,6,7,8,9的程式

7樓:匿名使用者

程式如下:

/**********************************

編寫:jzy23

交流:[email protected]

*********************************/

#include

#define uint unsigned int

#define uchar unsigned char

/***********************

共陰數碼管顯示碼

***********************/

uchar code display[10]= ;

延時函式

功能:晶振為12mhz時,延時count微秒

引數:count

返回值:void

void delay1xms( uint count)

/***********************

主函式*********************/

void main(void)}}

編一個組合語言程式:輸入自己的學號,然後最後一位數字乘以10,結果以10進位制數顯示在螢幕上,求大神

8樓:匿名使用者

dseg segment

xh db 10

db 0

db 10 dup(0)

db '$'

msg0 db 'input xue hao:$'

msg1 db 0dh, 0ah, 'the last digital x 10 = $'

dseg ends

assume cs:cseg, ds:dsegcseg segment

start:

mov ax, dseg

mov ds, ax

lea dx, msg0

mov ah,9

int 21h

lea dx, xh

mov ah,10

int 21h

lea dx, msg1

mov ah,9

int 21h

xor bh, bh

mov bl, xh+1

dec bl

mov al,[bx+2]

and al,0fh

mov bl,10

mul bl

call print

mov ah,4ch

int 21h

print proc near

xor cx, cx

mov bx, 10

q0:xor dx, dx

div bx

or dx, 0e30h

inc cx

push dx

cmp ax, 0

jnz q0

q1:pop ax

int 10h

loop q1

retprint endp

cseg ends

end start

組合語言程式設計,組合語言程式設計

org 0000h ljmp main org 000bh ljmp t0int org 0030h main mov tmod,01h mov th0,high 65536 5000 mov tl0,low 65536 5000 setb tr0 setb et0 setb ea clr a sj...

組合語言問題,組合語言問題

蜜蜂小玉米 assume cs code assume ds data data segment db i love you.data ends code segment start mov ax,data mov ds,ax mov bx,0 s0 check mov al,ds bx cmp a...

組合語言通用性問題,組合語言有什麼特點

當然不是這臺電腦和另外一臺的區別 而是各種不同平臺之間的通用性。比如unix 和 windows等平臺之間 組合語言與硬體打交道,當然首先要有對應得cpu支援了,其他的就沒有別的了。cpu架構一樣,這個語言就能在上面編譯 機器 是指電腦,但不同體系的電腦 體系是不同的,就是cpu指令不同。比如int...