EN: Blog with various topics utilities (and curiosities) in various fields: mathematics, electricity, electronics, physics, programming, crafts... PT: Blog com temas diversos com utilidades (e também curiosidades ) em vários domínios: matematica, electricidade, electrónica, fisica, programação, trabalhos manuais... FR: Blog avec de "choses" utiles (et curiosités) dans divers domaines: mathématiques, l'électricité, l'électronique, la physique, de la programmation, de l'artisanat...
terça-feira, 18 de agosto de 2015
ASSEMBLER ADITION BCD
EN: Program to add the contents of the BC and DE records pairs in BCD and place the result in result
PT: Programa para somar os conteudos dos pares de registos BC e DE em BCD e colocar o resultado em result
FR: Programme pour adictioner les paires de registres BC et DE en BCD et placer le résultat dans result
inic: mov a,e
add c
daa
sta result
mov a,d
adc b
daa
sta result+1
mvi a,0
adc a
sta result+2
rst 1
_____________EXAMPLES_______________________
when the program run, if BC=2749 and DE=6448, at the end of program
execution result has 97, result+1 has 91 and result+2 has 0
_____________
when the program run, if BC=9052 and DE=2914, at the end of program
execution result has 66, result+1 has 19 and result+2 has 1
:)
terça-feira, 4 de agosto de 2015
PT: Multiplicação de polinómios
FR: La multiplication des polynômes
EN: Multiplication of polynomials
________________________________________________________________________________
3+5(2+4) = 33
_____________________________________________
3+5(2+x) =13+5x
_____________________________________________
x(3+2) =5x
_____________________________________________
(x+2)(x-1) =x²+x-2
x + 2
X x - 1
-x - 2
x² + 2x
x² + x - 2
_______________________________________________________________________________
(3x³-2x²+4x-2)(2x²-x+1) =6x⁵-7x⁴+13x³-10x²+6x-2
3x³- 2x² + 4x - 2
X 2x² - x +1
3x³ - 2x² + 4x - 2
- 3x⁴ + 2x³ - 4x² + 2x
6x⁵ - 4x⁴ + 8x³ - 4x²
6x⁵ - 7x⁴ +13x³ -10x² + 6x - 2
_________________________________________________________________
(3x³+x) (x²+2) =3x⁵+7x³+2x
3x³+ 0x² + x + 0
X x² + 0x + 2
6x³ + 0x² + 2x +0
3x⁵ + 0x⁴ + x³ + 0x²
3x⁵ + 7x³ + 2x
______________________________________________________________________________
(-2x³+2x²+3x-2)(-2x²-3x+2) =4x⁵+2x⁴-16x³-x²+12x-4
-2x³ + 2x²+ 3x - 2
X -2x² - 3x + 2
- 4x³ + 4x² + 6x - 4
6x⁴ - 6x³ - 9x² + 6x
4x⁵ - 4x⁴ - 6x³ + 4x²
4x⁵ + 2x⁴ - 16x³ - x² +12x - 4
_________________________________________________________________
(-2x³+x+3)(2x²+3) =-4x⁵-4x³+6x²+3x+9
-2x³ + 0x² + x + 3
X 2x² + 0x + 3
- 6x³ + 0x² + 3x + 9
-4x⁵ + 0x⁴ + 2x³ + 6x²
-4x⁵ - 4x³ + 6x² + 3x + 9
Etiquetas:
como se multiplicam polinomios,
La multiplication des polynômes,
matemática,
mathematics,
mathématiques,
Multiplication of polynomials,
polinómios,
polynômes,
polynomials
sábado, 25 de julho de 2015
Assembler 8085 String Copy
Assembler 8085 String Copy
; PROGRAM STRING COPY STRCPY DO C++
DADOS EQU 2000h
CODIGO EQU 3000h
ORG DADOS
SDEST DS 10 ; HL String target
SFONTE DS 6 ; BC String source
ORG CODIGO
BEGIN: LXI H,SDEST;
LXI B,SFONTE
STRCPY: LDAX B
ANA A
MOV M,A
JZ FIM
INX B
INX H
JMP STRCPY
FIM: RST 1
_______________________________
SYMBOL TABLE
BEGIN 3000
FIM 3011
SDEST 2000
SFONTE 200A
STACK S 0000
STRCPY 3006
The string ends at the value 0.
at the following example x means d'ont care.
If the string SFONTE='John'
means SFONTE memory 200A= 'J' , 'o' , 'h' , 'n' , 0 , x
SDEST memory 2000= x , x , x , x , x , x , x , x , x , x
after we run the program the memory is:
string SFONTE='John'
string SDEST='John'
means SFONTE memory 200A= 'J' , 'o' , 'h' , 'n' , 0 , x
SDEST memory 2000 = 'J' , 'o' , 'h' , 'n' , 0 , x , x , x , x , x
cool!
; PROGRAM STRING COPY STRCPY DO C++
DADOS EQU 2000h
CODIGO EQU 3000h
ORG DADOS
SDEST DS 10 ; HL String target
SFONTE DS 6 ; BC String source
ORG CODIGO
BEGIN: LXI H,SDEST;
LXI B,SFONTE
STRCPY: LDAX B
ANA A
MOV M,A
JZ FIM
INX B
INX H
JMP STRCPY
FIM: RST 1
_______________________________
SYMBOL TABLE
BEGIN 3000
FIM 3011
SDEST 2000
SFONTE 200A
STACK S 0000
STRCPY 3006
The string ends at the value 0.
at the following example x means d'ont care.
If the string SFONTE='John'
means SFONTE memory 200A= 'J' , 'o' , 'h' , 'n' , 0 , x
SDEST memory 2000= x , x , x , x , x , x , x , x , x , x
after we run the program the memory is:
string SFONTE='John'
string SDEST='John'
means SFONTE memory 200A= 'J' , 'o' , 'h' , 'n' , 0 , x
SDEST memory 2000 = 'J' , 'o' , 'h' , 'n' , 0 , x , x , x , x , x
cool!
quarta-feira, 22 de julho de 2015
ASSEMBLER 8085
;FR La multiplication par additions successives
;PT MULTIPLICACAO POR SOMAS SUCESSIVAS
;EN Multiplication by successive additions
;FR Le résultat est valable uniquement si moins d'un octet
;PT O RESULTADO NAO PODE EXCEDER 1 BYTE
;EN The result is only valid if less than one byte
DADOS EQU 2000h
CODIGO EQU 3000h
ORG DADOS
NUM1: DB 1
NUM2: DB 1
ORG CODIGO
BEGIN: LXI H,NUM1 ; HL APONTA NUM1
LDA NUM2;
CMP M ; instrucctions to put
JC CONDICAO ; the counter
MOV A,M ; with the less number that we have
LXI H,NUM2 ; to multiply
CONDICAO: MOV C,A
INR C
MVI A,0
LOOP: DCR C
JZ FIM
ADD M
JMP LOOP
FIM: RST 1
EN: The result of multiplying NUM1 by NUM2 is in the accumulator now at the end
FR: Le acumulateur va rester avec le resultat de la multiplication de le NUM1 e NUM2
PT: O resultado da multiplicação de NUM1 pelo NUM2 fica no acumulador
means: ça veux dire: quer dizer:
A=NUM1xNUM2
very nice!
;FR La multiplication par additions successives
;PT MULTIPLICACAO POR SOMAS SUCESSIVAS
;EN Multiplication by successive additions
;FR Le résultat est valable uniquement si moins d'un octet
;PT O RESULTADO NAO PODE EXCEDER 1 BYTE
;EN The result is only valid if less than one byte
DADOS EQU 2000h
CODIGO EQU 3000h
ORG DADOS
NUM1: DB 1
NUM2: DB 1
ORG CODIGO
BEGIN: LXI H,NUM1 ; HL APONTA NUM1
LDA NUM2;
CMP M ; instrucctions to put
JC CONDICAO ; the counter
MOV A,M ; with the less number that we have
LXI H,NUM2 ; to multiply
CONDICAO: MOV C,A
INR C
MVI A,0
LOOP: DCR C
JZ FIM
ADD M
JMP LOOP
FIM: RST 1
EN: The result of multiplying NUM1 by NUM2 is in the accumulator now at the end
FR: Le acumulateur va rester avec le resultat de la multiplication de le NUM1 e NUM2
PT: O resultado da multiplicação de NUM1 pelo NUM2 fica no acumulador
means: ça veux dire: quer dizer:
A=NUM1xNUM2
very nice!
terça-feira, 14 de julho de 2015
FR: Petit programme assembler pour le 8085: Chercher le numero plus grand...
EN: Program assembler for the 8085 processor: Find the upper number...
PT: Programa assembler para o processador 8085: Procurar o maior numero...
; EN: program to find the upper number in a list TABELA of length LEN
; FR: programme pour trouver le numero plus grand dans une list TABELA de dimension LEN
; PT: programa para encontrar o maior dum array TABELA de dimensao LEN
ORG 2000h
LEN: DW 4
TABELA: DS 20
MAIOR: DS 1
ORG 3000H
LXI H,LEN
MOV C,M
INX H
MOV B,M
LXI H,TABELA
MOV A,M
LOOP2: INX H
DCX B
STA MAIOR
MOV A,B
ORA C
LDA MAIOR
JZ EXIT
CMP M
IF: JNC LOOP2
MOV A,M
MOV D,H
MOV E,L
FIM_DE_IF: JMP LOOP2
EXIT RST 1
EN: Program assembler for the 8085 processor: Find the upper number...
PT: Programa assembler para o processador 8085: Procurar o maior numero...
; EN: program to find the upper number in a list TABELA of length LEN
; FR: programme pour trouver le numero plus grand dans une list TABELA de dimension LEN
; PT: programa para encontrar o maior dum array TABELA de dimensao LEN
ORG 2000h
LEN: DW 4
TABELA: DS 20
MAIOR: DS 1
ORG 3000H
LXI H,LEN
MOV C,M
INX H
MOV B,M
LXI H,TABELA
MOV A,M
LOOP2: INX H
DCX B
STA MAIOR
MOV A,B
ORA C
LDA MAIOR
JZ EXIT
CMP M
IF: JNC LOOP2
MOV A,M
MOV D,H
MOV E,L
FIM_DE_IF: JMP LOOP2
EXIT RST 1
Subscrever:
Mensagens (Atom)