Assembler pomoc so zadanim

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Assembler pomoc so zadanim

Príspevok od používateľa Memnon »

zdravim
chcel som sa spytat ci by dakto nevedel pomoct so zadanim

Vytvorte program, ktory vypise na obrazovku povodny bitovy obsah daneho registra, potom otestuje bit alebo viacero bitov tohoto registra, potom vytlaci prislusnu
spravu podla pozadovanej ulohy a) az u) a nakoniec zobrazi bitovy obsah zmeneneho registra.

...b) ak je 3. bit registra BL 0, zmeni ho na 1

no mna napada len ulozit hodnotu BL registra a pokial ma pamat neklame tak treti bit ma hodnotu 2^2 cize by som to vynasobil s 04h
asi by to vezeralo nejak taktohodnota BL registra nahodna:
1001 0110
* 0000 0100
-------------
0000 0100 = 04h tu by som nasledne porovnal prave s touro hodnotou a ak by sa rovnali odhalil by som tym ze 3 bit je 1

ak by tam bola 0 len by som pripocital 04h k povodnej hodnote BL registra
da sa to takto okultne spravit?
vdaka

//ano myslel som AND
Naposledy upravil/-a Memnon v Ne 29. Mar, 2009, 15:24, upravené celkom 1 krát.
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: Assembler pomoc so zadanim

Príspevok od používateľa pEpinko »

Sice som to z toho co si napisal prilis nepochopil. Ale ak chces testovat urcity bit registra, tak pouzijes logicke AND kde ako druhy operand das konstantu ktore reprezentuje 3. bit (V tvojom pripade 04h), potom ak vysledok bude 0, tak tam bolo 0 inak tam bola 1. Da sa este aj pomocou SHL o 3 miesta, ak ma pamat neklame tak posledny zahodeny bit ide do carry flagu a teda sa da testovat. Nastavenie urciteho bitu na 1 urobis pomocou OR s rovnakou hodnotou.

EDIT: Uz som to pochopil, ty si vlastne napisal to co ja :) , takze ano da so to tak (aj ked dufam ze nasobenim si myslel logicky sucin).

Návrat na "Programovanie"